zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    html+css
    HTML的矢量图转换文字
    js初级——复习html+css-下拉标志
    js初级——复习html+css
    四方定理(递归) --java
    进制转换模板
    最大值最小化问题 和最小值最大化问题 ---(二分)
    分治法---循环日程表问题
    全排列 ---java
    并查集---java模板
  • 原文地址:https://www.cnblogs.com/qi-yuan-008/p/12588824.html
Copyright © 2011-2022 走看看