纱线上的火花,诊断:根据要求杀死容器。退出代码是143

时间:2016-12-14 10:56:16

标签: hadoop apache-spark

这是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

有了这些信息,有没有人知道如何调整火花。

0 个答案:

没有答案