在多个节点中运行spark作业

时间:2017-02-28 20:31:04

标签: apache-spark pyspark

我试图运行示例spark作业并且工作正常。现在,我需要在集群中的多个节点中运行相同的作业。 我的程序需要更改哪些内容以指示在多个节点中运行它。

from pyspark import SparkConf, SparkContext
import collections

#conf = SparkConf().setMaster("local").setAppName("RatingsHistogram")
conf = SparkConf().setMaster("hadoop-master").setAppName("RatingsHistogram")
sc = SparkContext(conf = conf)

#lines = sc.textFile("file:///SparkCourse/ml-100k/u.data")
lines = sc.textFile("hdfs://hadoop-master:8020/user/hduser/gutenberg/ml-100k/u.data")
ratings = lines.map(lambda x: x.split()[2])
result = ratings.countByValue()

sortedResults = collections.OrderedDict(sorted(result.items()))
for key, value in sortedResults.items():
    print("%s %i" % (key, value))

1 个答案:

答案 0 :(得分:2)

代码中唯一需要更改的选项是主要的spark上下文。要在hadoop上运行脚本,您需要在环境中放置HADOOP_CONF_DIR并将master设置为yarn。所有这些都在文档中解释:http://spark.apache.org/docs/latest/running-on-yarn.html#launching-spark-on-yarn