PySpark在YARN集群上分布式处理

aaa*_*210 9 hadoop-yarn apache-spark cloudera-cdh pyspark

我使用YARN作为资源管理器,在Cloudera CDH5.3集群上运行Spark.我正在用Python(PySpark)开发Spark应用程序.

我可以提交作业并且它们成功运行,但是它们似乎永远不会在多台机器上运行(我提交的本地机器).

我尝试了各种选项,比如将--deploy-mode设置为cluster,将master设置为yarn-client和yarn-cluster,但它似乎永远不会在多个服务器上运行.

通过传递类似--master local [8]的东西,我可以让它在多个核心上运行,但这显然不会在多个节点上分配处理.

我有一个非常简单的Python脚本处理来自HDFS的数据,如下所示:

import simplejson as json
from pyspark import SparkContext
sc = SparkContext("", "Joe Counter")

rrd = sc.textFile("hdfs:///tmp/twitter/json/data/")

data = rrd.map(lambda line: json.loads(line))

joes = data.filter(lambda tweet: "Joe" in tweet.get("text",""))

print joes.count()
Run Code Online (Sandbox Code Playgroud)

我正在运行一个提交命令,如:

spark-submit atest.py --deploy-mode client --master yarn-client
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能确保作业在整个群集中并行运行?

MrC*_*ine 8

你可以交换命令的参数吗?spark-submit --deploy-mode client --master yarn-client atest.py

如果您看到该命令的帮助文本:

火花提交

Usage: spark-submit [options] <app jar | python file>
Run Code Online (Sandbox Code Playgroud)