【问题标题】:Spark/YARN - not all nodes are used in spark-submitSpark/YARN - 并非所有节点都用于 spark-submit
【发布时间】:2017-10-29 05:00:59
【问题描述】:

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

我 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

我的.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()))

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn hadoop2 namenode


    【解决方案1】:

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

    SPARK_EXECUTOR_INSTANCES=3
    SPARK_EXECUTOR_CORES=8
    

    【讨论】:

    • 您可能过度使用了您的内存。如果一个任务不需要所有机器,那么它会相应地缩小
    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 2016-11-03
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2017-12-05
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多