我正在尝试在Hadoop集群(2.4.2)上使用Spark(1.6.1)运行Python脚本。使用Ambari(2.2.1.1)安装,配置和管理集群。
我有一个4个节点的集群(每个40Gb HD-8核心--16Gb RAM)。
我的脚本使用sklearn
lib:所以为了在spark上并行化我使用spark_sklearn
lib(在https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-spark.html上看到它)。
此时我尝试使用以下命令运行脚本:
spark-submit spark_example.py --master yarn --deploy-mode client --num-executors 8 --num-executor-core 4 --executor-memory 2G
但它始终在localhost上运行,只有一个执行程序。
同样来自Ambari仪表板,我可以看到群集中只有一个节点消耗资源。并且还尝试不同的配置(执行程序,核心),执行时间是相同的。
更新
这是Yarn UI Nodes截图:
这是“计划程序”选项卡:
有什么想法吗?
非常感谢
答案 0 :(得分:0)
设置参数MASTER="yarn-cluster"
(或MASTER="yarn-client"
)似乎有效:现在我在Spark History和YARN History UI中看到应用程序报告。
ps:似乎没有考虑通过命令行传递的参数(例如:--num-executors 8--num-executor-core 4--executor-memory 2G
)。相反,如果我在Ambari的“spark-env template
”字段中设置执行者参数,则会考虑参数。无论如何它现在有效:)
我希望将来可以帮助某人。