リソース マネージャーとして YARN を使用して、Cloudera CDH5.3 クラスターで Spark を実行しています。Python (PySpark) で Spark アプリを開発しています。
ジョブを送信でき、正常に実行されますが、複数のマシン (送信元のローカル マシン) で実行されるようには見えません。
--deploy-mode を cluster に、 --master を yarn-client および yarn-cluster に設定するなど、さまざまなオプションを試しましたが、複数のサーバーで実行されることはないようです。
--master local[8] のようなものを渡すことで複数のコアで実行できますが、明らかに複数のノードに処理が分散されません。
HDFS からのデータを次のように処理する非常に単純な Python スクリプトがあります。
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()
そして、次のような送信コマンドを実行しています:
spark-submit atest.py --deploy-mode client --master yarn-client
ジョブがクラスター全体で並行して実行されるようにするにはどうすればよいですか?