Sat*_*tya 4 python apache-spark apache-spark-sql pyspark spark-dataframe
我在独立群集模式下运行spark作业时遇到这些错误.
我的火花工作旨在:
groupby,count,joins获得决赛df然后df.toPandas().to_csv().输入数据集为524 Mb.我得到的错误:
WARN TaskMemoryManager:无法分配页面(33554432字节),请重试.
多次重复上述后,再次出现新错误
警告NettyRpcEnv:忽略失败:java.util.concurrent.TimeoutException:无法在10秒内收到任何回复
org.apache.spark.rpc.RpcTimeoutException:期货在[10秒]后超时.此超时由spark.executor.heartbeatInterval控制
在org.apache.spark.rpc.RpcTimeout.组织$阿帕奇$火花$ RPC $ RpcTimeout $$ createRpcTimeoutException
ExecutorLostFailure(由其中一个正在运行的任务导致执行程序驱动程序退出)原因:执行程序心跳超时158295 ms后超时
处理来自('127.0.0.1',49128)Traceback(最近一次调用最后)的请求时发生异常:
文件"/home/stp/spark-2.0.0-bin-hadoop2.7/python/pyspark/accumulators.py",第235行,句柄中num_updates = read_int(self.rfile)文件"/ home/stp/spark- 2.0.0-bin-hadoop2.7/python/pyspark/serializers.py",第545行,在read_int中引发EOFError EOFError
最后 ###********##
py4j.protocol.Py4JNetworkError:尝试连接到Java服务器时发生错误(127.0.0.1:38073)
首先想到的是,我假设,错误可能是由于内存错误(TaskMemoryManager)而来自Total 16gb,这个过程消耗了最大6 gb,剩下9 + gb空闲.我还将驱动程序内存设置为10G.通过.
但是,当我在我的最终数据帧上执行count()或show()时,它是成功的操作.但是在执行toCsv时,它会抛出上述错误/警告.
实际上并不了解/猜测可能导致问题的原因.
请帮我分析一下上面的错误.欢迎任何帮助/评论.谢谢.
在我们的例子中,我们有很多小表(<10 MB).因此我们决定禁用广播,此外还开始使用G1GC进行垃圾收集.将这些条目添加到$ SPARK_HOME/conf中的spark-defaults.conf文件中
spark.driver.extraJavaOptions -XX:+UseG1GC
spark.executor.extraJavaOptions -XX:+UseG1GC
spark.sql.autoBroadcastJoinThreshold -1
Run Code Online (Sandbox Code Playgroud)
或者作为替代方案,您可以调整autoBroadcast的阈值大小并查看它以解决问题.
| 归档时间: |
|
| 查看次数: |
9700 次 |
| 最近记录: |