我有2个节点的hadoop群集。每个都有16GB RAM和512GB硬盘。如何在群集中执行高效的火花程序
我已经写火花程序像下面一个
代码:
val input = sc.wholeTextFiles("folderpath/*")
do some operations on input.
convert it to dataframe. then register temptable. execute insert command to insert the dataframe value to hive table.
然后我打开主机1(这是我的集群的名称节点)端子&我运行火花提交命令等
>spark-submit --class com.sample.parser --master yarn Parser.jar.
但是它需要超过50分钟才能处理总共大约1GB的25个文件。而且当我检查火花UI时,执行程序列表只有我的主机2.主机1是李担任司机。
所以实际上只有一个节点正在执行程序(主机2)。为什么?
有没有办法让我的驱动程序也可以执行程序。这样它跑得快一点?难道我做错了什么?基本上我希望我的驱动程序节点也是执行程序的一部分(两台机器都有8个内核)。 在此先感谢。
你尝试过'--num-executors 10'吗? –
是的。我做到了。但仍然只有我的主机2正在执行。不是主人1.这是我所尝试过的。 “spark-submit --class com.sample.parser - 主纱Parser.jar。--num -executeors 16 --executor-memory 1g --executor-cores 16”。但没有区别 – user7264473