私はSparkを初めて使用しており、これをクラスター(MapRのCommunityバージョンを実行している9ノードクラスターのSpark 2.0.1)上で実行しています。私はYarnクラスターからクライアントへの提出時にスパーク出力
./bin/spark-submit --master yarn --jars ~/hadoopPERMA/jars/hadoop-lzo-0.4.21-SNAPSHOT.jar examples/src/main/python/wordcount.py ./README.md
経由WORDCOUNT例を提出し、すべてが正常に機能しているよう
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.
ので、エラーなしをが、私はWORDCOUNT結果を見ていないです。私は何が欠けていますか?私は自分のヒストリーサーバーでその仕事を見て、それは正常に完了したと言います。また、私は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'警告であるように、あなたのコードを実行して、あなたのjarファイルを配置した後
。しかし、wordcountの出力はどうですか? – Sal
あなたのコードを共有できますか? –
コードが追加されました。 Sparkに同梱されているデフォルトのワードクラウドコードです。 – Sal