Pyspark 提交任务遇到的问题

最近使用Pyspark的时候,遇到一些新的问题,希望记录下来,解决的我会补充。

1. WARN DomainSocketFactory: The short-circuit local reads feature cannot be used

2. pyspark TypeError: ‘PipelinedRDD‘ object does not support indexing

该格式的RDD不能直接索引,但是可以通过其他方式实现:

方法一:使用take之后,再索引 —— some_rdd.take(10)[5] :即表示取前10个中的索引为5的元素;

方法二:如果数据量较少,可以先 collect —— some_rdd.collect() 转化为array格式的数据,再索引;

方法三:通多lambda函数和map函数可以实现 —— some_rdd.map(lambda x: x)

3.WARN DFSClient: Failed to connect to /ip:port for block, add to deadNodes

据说是防火墙原因,但是本人尚未尝试。

4. WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

本人使用过:spark-submit --executor-memory 512M --total-executor-cores 2 test.py

但是这个方法没有解决这个问题,还在查找中。

原因:可能是内存不足造成的,可以用 free -m 查看一下节点的内存使用情况。

解决方法:

可以尝试方法一:在spark-env.sh中添加环境变量 —— export SPARK_EXECUTOR_MEMORY=512m

然后重启之后再执行。

可以尝试方法二:先清理内存,再执行,即依次执行以下三条命令:

sync    #写缓存到文件系统
echo 3 > /proc/sys/vm/drop_caches   #手动释放内存

# 其中:
# 0:不释放(系统默认值)
# 1:释放页缓存
# 2:释放dentries和inodes
# 3:释放所有缓存,即清除页面缓存、目录项和节点;

free -h     #查看是否已经清理

# 注:指定内存和核,--executor-memory 需要大于450MB, 也就是471859200B

5. java.io.IOException not a file: hdfs:// XXXX java.sql.SQLException

解决方法:在spark-sql命令行中,设置参数,即执行:

SET mapred.input.dir.recursive=true;

SET hive.mapred.supports.subdirectories=true;

原因:猜测是因为要读取的文件或者表在子目录导致。

参考:

https://blog.csdn.net/xwc35047/article/details/53933265

https://jingyan.baidu.com/article/375c8e1971d00864f3a22902.html

https://blog.csdn.net/Gavinmiaoc/article/details/80527717

原文地址:https://www.cnblogs.com/qi-yuan-008/p/12588824.html

时间: 2024-11-06 11:39:57

Pyspark 提交任务遇到的问题的相关文章

Spark Submit提交应用程序

英文标题:Submitting Applications 英文原址:http://spark.apache.org/docs/latest/submitting-applications.html Spark Version:1.3.0 Spark根目录的bin目录下spark-submit脚本用于在集群上启动应用程序,它通过统一接口使用Spark所支持的所有集群管理器,因此无需特殊配置每一个应用程序. 1,绑定应用程序依赖 如果代码依赖于其它项目,为了将代码分发到Spark集群,就需要将这些依

通过 --py-files 可以在pyspark中可以顺利导入

文件import问题 问题: 在脚本中import了其他文件, pyspark中可以运行, 但是在spark-submit中总是失败 假定我们的任务脚本为 app.py , 大体代码像这样: from pyspark import SparkContext ## 加载通用脚本 import common # # ......... # if __name__ == "__main__": sc = SparkContext(appName="ACoolApp") #

给pyspark 设置新的环境

如果是从pysparkshell里面进去,此时已经有了pyspark环境了,所以要加一个:sc.stop() from pyspark import SparkContext, SparkConfsc.stop()conf = SparkConf()conf.setAppName('zhangb')#conf.set("spark.kryoserializer.buffer.mb", "128")conf.set("spark.kryoserializer

Spark调研笔记第4篇 - PySpark Internals

其实,有两个名为PySpark的概念,一个是指Spark客户端内置的pyspark脚本,而另一个是指Spark Python API中的名为pyspark的package. 本文只对第1个pyspark概念做介绍. 1. Spark客户端内置的pyspark"命令" Spark客户端支持交互模式以方便应用调试,通过调用pyspark可以进入交互环境: cd /path/to/spark/ && ./bin/pyspark 用编辑器查看可知,pyspark其实是个shel

PySpark调用自定义jar包

在开发PySpark程序时通常会需要用到Java的对象,而PySpark本身也是建立在Java API之上,通过Py4j来创建JavaSparkContext. 这里有几点是需要注意的 1. Py4j只运行在driver 也就是说worker目前来说引入不了第三方的jar包.因为worker结点的PySpark是没有启动Py4j的通信进程的,相应的jar包自然也加载不了.之前没有详细看这部分文档,系统设计时企图在worker结点利用client模式直连Hbase来获取部分数据,从而避免对整个表的

pyspark的RDD代码纪录

pyspark rdd.py文件代码纪录 代码版本为 spark 2.2.0 1.RDD及常见算子 class RDD(): #这里简单介绍几个典型的算子,其余的算子代码可以自己去看一看 def __init__(self, jrdd, ctx, jrdd_deserializer=AutoBatchedSerializer(PickleSerializer())): """ _jrdd是个非常重要的属性,这个属性会在pyspark的计算过程中被全程传递 pyspark里被第

pyspark对应的scala代码PythonRDD类

pyspark jvm端的scala代码PythonRDD 代码版本为 spark 2.2.0 1.PythonRDD.class 这个rdd类型是python能接入spark的关键 //这是一个标准的RDD实现,实现对应的compute,partitioner,getPartitions等方法 //这个PythonRDD就是pyspark里PipelinedRDD里_jrdd属性方法返回的东西 //parent就是PipelinedRDD里传递进来的_prev_jrdd,是最初构建的数据源RD

Spark学习之路 (十六)SparkCore的源码解读(二)spark-submit提交脚本

讨论QQ:1586558083 目录 一.概述 二.源码解读 2.2 find-spark-home 2.3 spark-class 2.4 SparkSubmit 正文 回到顶部 一.概述 上一篇主要是介绍了spark启动的一些脚本,这篇主要分析一下Spark源码中提交任务脚本的处理逻辑,从spark-submit一步步深入进去看看任务提交的整体流程,首先看一下整体的流程概要图: 回到顶部 二.源码解读 2.1 spark-submit # -z是检查后面变量是否为空(空则真) shell可以

spark-submit提交任务到集群,分发虚拟环境和第三方包

spark-submit提交任务的参数很多: Usage: spark-submit [options] <app jar | python file> [app arguments] Usage: spark-submit --kill [submission ID] --master [spark://...] Usage: spark-submit --status [submission ID] --master [spark://...] Usage: spark-submit ru