0
我有一個Spark/YARN羣集,其中有3個從站設置在AWS上。Spark/YARN - 並非所有節點都用於spark-submit
我想提交一份這樣的工作:~/spark-2.1.1-bin-hadoop2.7/bin/spark-submit --master yarn --deploy-mode cluster my.py
最終的結果是一個文件,其中包含集羣中所有從節點的所有主機名。我期待我在輸出文件中混合使用主機名,但是,我只能在輸出文件中看到一個主機名。這意味着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()))
您可能會過度承擔自己的記憶。如果任務不需要所有的機器,那麼它會相應地縮小 –