这是python写的一个简单的火花。我得到“诊断:容器被请求杀死。退出代码是143”错误。这是我运行此代码的代码和脚本 输入目录的大小约为100GB。但是,如果我使用一个小数据文件(3GB),它将运行良好。
import sys
from pyspark import SparkContext
sc = SparkContext(appName="job_name")
data1 = sc.textFile(sys.argv[1])
d1 = data1.filter(lambda x: "a string" in x)
print d1.count()
sc.stop()
//-----------------------------------------//
input="xxxxx"
output="yyyyy"
hadoop fs -rmr $output
$SPARK_HOME/bin/spark-submit \
--deploy-mode cluster \
--master yarn \
--num-executors 100 \
--executor-cores 2 \
--driver-cores 2 \
--executor-memory 8g \
--driver-memory 4g \
stat.py \
$input \
$output
所以我写了一个hadoop流媒体来完成这项工作,我得到了:
Error: Java heap space
Container killed by the ApplicationMaster.
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
我的火花代码似乎是同样的错误。
现在我怀疑输入中可能有一些记录太大了。
/ *
*加入2016-12-16
* /
我的hadoop流媒体正在运行^ - ^,配置如下:
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming-2.5.0-cdh5.3.2.jar
-D mapred.reduce.tasks=0 \
-D mapreduce.map.memory.mb=3192 \
-D mapreduce.reduce.memory.mb=3192 \
-D mapreduce.map.java.opts=-Xmx2872m \
-D mapreduce.reduce.java.opts=-Xmx2872m \
-D mapred.child.java.opts=-Xmx2048m \
-D mapreduce.task.io.sort.mb=512 \
-mapper "mapper.py" \
-file mapper.py \
-input $input \
-output $output
但无论我如何调整它,我的火花代码仍无法运行。 这是我的火花代码配置:
$SPARK_HOME/bin/spark-submit \
--deploy-mode cluster \
--master yarn \
--num-executors 200 \
--executor-cores 2 \
--driver-cores 2 \
--executor-memory 20g \
--driver-memory 16g \
--verbose \
stat.py \
$input \
$output
Here is my spark-defaults.conf:
spark.yarn.executor.memoryOverhead 4096
spark.yarn.driver.memoryOverhead 4096
spark.memory.storageFraction 0.9
有了这些信息,有没有人知道如何调整火花。