我有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