我运行了一个由12个节点组成的spark集群(8g内存,每个节点8个内核)进行了一些测试。我试图弄明白为什么一个简单的wordcount应用程序在“map”阶段的数据位置都是“any”。14gb数据集存储在hdfs中。
mv1qrgav1#
我今天也遇到同样的问题。这是我的情况:当我设置 --total-executor-cores 9 ,locality lever是node\ u local,但是当我将executor核心总数设置为9以下时,例如 --total-executor-cores 7 ,则Location lever变为any,总时间开销是node\u local lever的10倍。你可以试试。
--total-executor-cores 9
--total-executor-cores 7
irlmq6kh2#
不要这样做 start-all.sh . 你应该单独启动每个奴隶
start-all.sh
$SPARK_HOME/sbin/start-slave.sh -h <hostname> <masterURI>
hk8txs483#
我在ec2s上运行我的集群,我通过将以下内容添加到 spark-env.sh 在名称节点上
spark-env.sh
SPARK_MASTER_HOST=<name node hostname>
然后将以下内容添加到 spark-env.sh 在数据节点上
SPARK_LOCAL_HOSTNAME=<data node hostname>
nnt7mjpx4#
我遇到了同样的问题,在我的情况下,这是一个配置问题。我在ec2上运行,我的名字不匹配。也许同样的事情也发生在你身上。当您检查hdfs如何看待您的集群时,应该是这样的:
hdfs dfsadmin -printTopology Rack: /default-rack 172.31.xx.xx:50010 (ip-172-31-xx-xxx.eu-central-1.compute.internal) 172.31.xx.xx:50010 (ip-172-31-xx-xxx.eu-central-1.compute.internal)
在ui中的executors地址中也应该看到相同的内容(默认情况下是http://your-cluster-public-dns:8080/).在我的例子中,我使用的是spark slaves的公共主机名。我改变了主意 SPARK_LOCAL_IP 在 $SPARK/conf/spark-env.sh 也用私人的名字,换了之后我 NODE_LOCAL 大多数时候。
SPARK_LOCAL_IP
$SPARK/conf/spark-env.sh
NODE_LOCAL
4条答案
按热度按时间mv1qrgav1#
我今天也遇到同样的问题。这是我的情况:
当我设置
--total-executor-cores 9
,locality lever是node\ u local,但是当我将executor核心总数设置为9以下时,例如--total-executor-cores 7
,则Location lever变为any,总时间开销是node\u local lever的10倍。你可以试试。irlmq6kh2#
不要这样做
start-all.sh
. 你应该单独启动每个奴隶hk8txs483#
我在ec2s上运行我的集群,我通过将以下内容添加到
spark-env.sh
在名称节点上然后将以下内容添加到
spark-env.sh
在数据节点上nnt7mjpx4#
我遇到了同样的问题,在我的情况下,这是一个配置问题。我在ec2上运行,我的名字不匹配。也许同样的事情也发生在你身上。
当您检查hdfs如何看待您的集群时,应该是这样的:
在ui中的executors地址中也应该看到相同的内容(默认情况下是http://your-cluster-public-dns:8080/).
在我的例子中,我使用的是spark slaves的公共主机名。我改变了主意
SPARK_LOCAL_IP
在$SPARK/conf/spark-env.sh
也用私人的名字,换了之后我NODE_LOCAL
大多数时候。