使用Apache Spark中的所有资源和Yarn

时间:2015-05-26 11:31:50

标签: apache-spark yarn

我正在使用Apache Spark和Yarn客户端。 我有4个工作电脑,每个电脑有8个vcpus,我的火花集群有30 GB的RAM。 我将执行程序内存设置为2G,实例数设置为33。 我的工作需要10个小时才能运行,所有机器都闲置了80%左右。

我不理解执行程序内存和执行程序实例之间的关联。我应该每个Vcpu有一个实例吗?我应该将执行程序内存设置为每台机器的机器/#执行程序的内存吗?

2 个答案:

答案 0 :(得分:0)

我相信您必须使用以下命令:

spark-submit --num-executors 4 --executor-memory 7G --driver-memory 2G --executor-cores 8 --class \"YourClassName\" --master yarn-client

执行人数应为4,因为你有4名工人。执行程序内存应该接近每个纱线节点分配的最大内存,大约约5-6GB(我假设你有30GB的总RAM)。

您应该查看spark-submit参数并完全理解它们。

答案 1 :(得分:0)

我们使用cassandra作为spark的数据源。问题是没有足够的分区。我们需要更多地分割数据。我们对cassandra分区到spark分区的映射不够小,我们只生成10或20个任务而不是100个任务。