spark學習記錄(五、Spark基於資源排程管理器的提交模式)
阿新 • • 發佈:2019-01-13
一、Standalone(Spark自帶)
1.1 Standalone-client模式
提交命令:
./spark-submit --master spark://hadoop1:7077 --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
過程:
Standalone-client模式提交任務,會在客戶端看到task的執行情況和結果。當在客戶端提交多個Application時,每個Application都會啟動自己的Driver,Driver與叢集worker有大量的通訊,會造成客戶端網絡卡流量激增問題。這種模式適用於程式測試,不適用於生產。
1.2 Standalone-cluster模式
提交命令:
./spark-submit --master spark://hadoop1:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
過程:
Standalone-cluster模式提交任務,Driver會在叢集中隨機一臺worker上啟動,如果提交多個application,那麼每個application的Driver會分散到叢集的Worker節點,相當於將client模式的客戶端網絡卡流量激增問題分散到叢集中。適用於生產環境。
二、Yarn
2.1 Yarn-client模式
在spark客戶conf下的spark-env.xml檔案下配置
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
提交命令:
./spark-submit --master yarn --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
過程:
yarn-client模式提交任務,Driver在客戶端啟動,當提交多個Application時,每個Application的Driver都會在客戶端啟動,也有網絡卡流量激增問題。這種模式適用於程式測試,不適用於生產環境。在客戶端可以看到任務的執行和結果。
2.2 yarn-cluster模式
命令:
./spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /usr/local/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar
過程:
yarn-cluster模式提交任務,適用於生產環境,AM(Driver)隨即在一臺NM節點啟動,當提交多個Application時,每個Application的Driver會分散到叢集的NM中啟動,相當於將Yarn-client模式的客戶端網絡卡流量激增問題分散到叢集中。在客戶端看不到task執行情況和結果,要到webui中檢視。