介紹如何在集羣之外提交Spark任務到集羣。
Spark目前支持三種集羣,分別是Spark自實現的standalone集羣、mesos集羣和YARN集羣。
使用standalone集羣,提交應用時使用–master參數指定集羣地址,如 --master spark://masternode:7077
所以只需要有spark的客戶端,可以很方便的遠程提交應用到指定的集羣。
使用mesos集羣,同樣是指定–master參數爲集羣地址,如 --master mesos://master66:5050
。這種形式和standalone集羣很相似,也可以很方便的通過遠程來提交應用。
使用YARN集羣,–master參數指定爲YARN,但是要求預先設置HADOOP_CONF_DIR
或者YARN_CONF_DIR
的環境變量,這個環境變量指向hadoop相關配置的目錄。spark客戶端會讀取並解析其中的配置文件,並使用其中的配置信息來連接集羣管理器。
如果要在遠程提交應用到Yarn集羣,最簡單的方式就是從集羣把這些配置下載下來,然後配置環境變量。
具體可以參考資料:
- Remote Spark Jobs on YARN
- Spark submit YARN mode HADOOP_CONF_DIR contents
- How to submit a spark job on a remote master node in yarn client mode?
我想,或許我們可以找出spark需要的配置項,然後通過命令行的方式來指定,而不用通過配置目錄的環境變量,這樣我可以靈活的切換不同的集羣,而我確實有這個需要。
這一個方向還有待探索。
在windows系統提交應用的示例:
1 |
set HADOOP_CONF_DIR=E:LOCALCLUSTERSERVICE-HADOOP-a1e7b238d7f044d6b70185654c855c52 & |