0
AWSに3つのスレーブが設定されたSpark/YARNクラスタがあります。スパーク/ YARN - すべてのノードがスパーク送信に使用されていません
私はこのような仕事をspark-submitします。~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master yarn --deploy-mode cluster my.py
最終結果は、クラスタ内のすべてのスレーブからのすべてのホスト名を含むファイルです。出力ファイルにホスト名を混在させることを期待していましたが、出力ファイルには1つのホスト名しか表示されません。つまり、YARNはクラスタ内の他のスレーブを決して利用しません。
設定に何か不足していますか?
以下の設定は、spark-env.sh
にも含まれています。
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/
YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop/
SPARK_EXECUTOR_INSTANCES=3
SPARK_WORKER_CORES=3
my.py
import socket
import time
from pyspark import SparkContext, SparkConf
def get_ip_wrap(num):
return socket.gethostname()
conf = SparkConf().setAppName('appName')
sc = SparkContext(conf=conf)
data = [x for x in range(1, 100)]
distData = sc.parallelize(data)
result = distData.map(get_ip_wrap)
result.saveAsTextFile('hby%s'% str(time.time()))
メモリをオーバーコミットしている可能性があります。タスクがすべてのマシンを必要としない場合は、それに応じてスケールダウンします –