Spark / YARN - 并非所有节点都用于spark-submit

时间:2017-05-28 23:59:39

标签: hadoop apache-spark yarn hadoop2 namenode

我有一个Spark / YARN群集,在AWS上设置了3个从属设备。

我点火提交这样的工作:~/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()))

1 个答案:

答案 0 :(得分:0)

更新以下设置或spark-env.sh后,将使用所有从站。

SPARK_EXECUTOR_INSTANCES=3
SPARK_EXECUTOR_CORES=8