gpt4 book ai didi

hadoop - 无法让pyspark作业在hadoop集群的所有节点上运行

转载 作者:可可西里 更新时间:2023-11-01 14:25:18 24 4
gpt4 key购买 nike

总结:我无法让我的 python-spark 作业在我的 hadoop 集群的所有 节点上运行。我已经为 hadoop 'spark-1.5.2-bin-hadoop2.6' 安装了 spark。启动 java spark 作业时,负载得到分布在所有节点上,当启动 python spark 作业时,只有一个节点承担负载。

设置:

  • 为 4 个节点配置的 hdfs 和 yarn:nk01(名称节点)、nk02、nk03、nk04,在 xen 虚拟服务器上运行
  • 版本:jdk1.8.0_66、hadoop-2.7.1、spark-1.5.2-bin-hadoop2.6
  • hadoop 安装了所有 4 个节点
  • spark 只安装在 nk01 上

我将一堆 Gutenberg 文件(谢谢你,Johannes!)复制到 hdfs 上,并尝试使用 java 和 python 对文件的子集(以“e”开头的文件)进行字数统计:

Python:

使用自制的 python 脚本进行字数统计:

/opt/spark/bin/spark-submit wordcount.py --master yarn-cluster \
--num-executors 4 --executor-cores 1

Python 代码分配了 4 个分区:

tt=sc.textFile('/user/me/gutenberg/text/e*.txt',4)

在 60 秒内在 4 个节点上加载:

load

Java:

使用在 spark 分布中找到的 JavaWordCount:

/opt/spark/bin/spark-submit --class JavaWordCount --master yarn-cluster \
--num-executors 4 jwc.jar '/user/me/gutenberg/text/e*.txt'

load

结论:java版本将其负载分布在集群中,python版本仅在1个节点上运行。

问题:如何获取 python 版本以在所有节点之间分配负载?

最佳答案

正如 Shawn Guo 所建议的那样,python 程序名称确实位于错误的位置。它应该以这种方式运行:

/opt/spark/bin/spark-submit --master yarn-cluster --num-executors 4 
--executor-cores 1 wordcount.py

这给节点带来了这个负载: enter image description here

关于hadoop - 无法让pyspark作业在hadoop集群的所有节点上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34310174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com