首页 > 解决方案 > Spark 提交并行作业

问题描述

(Apache Spark 有问题我有一个有 10 个节点(1 个主节点和 9 个从节点)的集群,每个节点有 1048MB 内存。

我从事机器学习工作,所以我想并行运行我的实现,但我无法让它工作 - 总是有一个 Worker 执行我提交的应用程序。

我尝试了一个 WordCount 的简单示例,在其中对文件进行了分区,但我总是得到相同的结果。

这是我的文件

spark-env.sh(在每个节点中):

HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"
SPARK_YARN_QUEUE="default" 
export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=9"
export SPARK_WORKER_OPTS="-Dspark.deploy.defaultCores=9"
SPARK_WORKER_MEMORY=1g

我试过的例子:

val rdd = sc.textFile("path.txt" , 2 ).flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey(_+_)
rdd.saveAsTextFile(path)
//I tried 2 distribution hope see two worker execute

这是我提交应用程序的配置:

./spark-submit --master spark://master:6066 --deploy-mode cluster --conf spark.yarn.jars=hdfs://master:9000/jars/*.jar --conf spark.default.parallelism=2 --class Accueil  hdfs://master:9000/user/word2P.jar hdfs://master:9000/user/twitter.txt  hdfs://master:9000/user/result

这是执行时我的 Spark UI:

在此处输入图像描述

标签: scalaapache-sparkhadoophadoop-yarnhadoop2

解决方案


推荐阅读