Wil*_*emM 3 hadoop apache-spark pyspark
摘要:我无法让我的python-spark作业在hadoop集群的所有节点上运行。我已经安装了hadoop'spark-1.5.2-bin-hadoop2.6'的火花。启动java spark作业时,负载分布在所有节点上,而启动python spark作业时,只有一个节点承担负载。
设置:
我将一堆古腾堡文件(谢谢约翰内斯!)复制到hdfs上,并尝试使用Java和python在文件的子集(以'e'开头的文件)上进行单词计数:
Python:
使用自制的python脚本进行字数统计:
/opt/spark/bin/spark-submit wordcount.py --master yarn-cluster \
--num-executors 4 --executor-cores 1
Run Code Online (Sandbox Code Playgroud)
Python代码分配了4个部分:
tt=sc.textFile('/user/me/gutenberg/text/e*.txt',4)
Run Code Online (Sandbox Code Playgroud)
在60秒内在4个节点上加载:
Java的:
使用在spark发行版中找到的JavaWordCount:
/opt/spark/bin/spark-submit --class JavaWordCount --master yarn-cluster \
--num-executors 4 jwc.jar '/user/me/gutenberg/text/e*.txt'
Run Code Online (Sandbox Code Playgroud)
结论:java版本将其负载分布在整个群集中,而python版本仅在1个节点上运行。
问题:如何同时获得python版本以在所有节点之间分配负载?
正如肖恩·郭(Shawn Guo)所建议的那样,Python程序名称的位置确实错误。应该以这种方式运行:
/opt/spark/bin/spark-submit --master yarn-cluster --num-executors 4
--executor-cores 1 wordcount.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |