我有一个Spark/Yarn集群与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
我的.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条答案
按热度按时间8zzbczxx1#
在我更新了以下设置或spark-env.sh之后,所有从机都被利用了。