祝方泽*_*祝方泽 5 hadoop apache-spark
这是一个由python编写的简单spark。我收到“诊断:根据请求杀死容器。退出代码为 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
Run Code Online (Sandbox Code Playgroud)
所以我写了一个 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
Run Code Online (Sandbox Code Playgroud)
我的火花代码似乎是同样的错误。
现在我怀疑输入中可能有一些记录太大了。
/*
* 在 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
Run Code Online (Sandbox Code Playgroud)
但是我的火花代码仍然无法运行,无论我如何调整它。这是我的火花代码配置:
$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
Run Code Online (Sandbox Code Playgroud)
有了这些信息,有谁知道如何调整火花。
| 归档时间: |
|
| 查看次数: |
3217 次 |
| 最近记录: |