我是Spark的新手,刚刚在群集上运行(运行社区版MapR的9节点群集上的Spark 2.0.1)。我通过通过Yarn集群与客户端提交时的Spark输出
./bin/spark-submit --master yarn --jars ~/hadoopPERMA/jars/hadoop-lzo-0.4.21-SNAPSHOT.jar examples/src/main/python/wordcount.py ./README.md
提交单词计数例子,得到下面的输出
17/04/07 13:21:34 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
: 68
help: 1
when: 1
Hadoop: 3
...
看起来一切正常。当我添加--deploy-mode cluster
我得到以下输出:
17/04/07 13:23:52 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
所以没有错误,但我没有看到该单词计数结果。我错过了什么?我在我的历史服务器中看到这份工作,并表示它已成功完成。此外,我检查了我的用户目录中的DFS但写这个以外的空目录中没有新文件:/user/myuser/.sparkStaging
代码(wordcount.py例如随星火):
from __future__ import print_function
import sys
from operator import add
from pyspark.sql import SparkSession
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: wordcount <file>", file=sys.stderr)
exit(-1)
spark = SparkSession\
.builder\
.appName("PythonWordCount")\
.getOrCreate()
lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0])
counts = lines.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(add)
output = counts.collect()
for (word, count) in output:
print("%s: %i" % (word, count))
spark.stop()
我假设这解决了'无论spark.yarn.jars也不spark.yarn.archive是set'警告。但是,wordcount输出呢? – Sal
你能分享你的代码吗? –
添加了代码。这是Spark附带的默认wordcloud代码。 – Sal