1. 程式人生 > >各模式下執行spark自帶例項SparkPi

各模式下執行spark自帶例項SparkPi

此係統是ubuntu,spark版本是1.0.0(下載的不是原始碼,而是編譯好的,在我的其他文章裡有下載網盤地址),hadoop版本2.2.0,scala版本2.10.4

1.spark-sunbmit命令:spark1.0之前的版本執行自帶例子使用$SPARK_HOME/bin/run-example命令,對於spark1.0以後做出了改進,使用$SPARK_HOME/bin/spark-submit命令。其實,spark-shell用到的就是通過spark-submit,之後呼叫spark-class函式來完成這些命令。具體可看下spark-submit.sh,會找到spark-class。

2.執行模式有很多模式,這裡就不一一介紹模式的執行原理,具體可去看下書。只看下執行模式的命令和結果。模式有:(1)local(本地)模式,(2)standalone模式,(3)on-yarn-cluster(on-yarn-standalone)模式,(4)on-yarn-client模式。

2.1 local模式  在安裝的spark目錄下敲入命令:./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local lib/spark-examples-1.0.0-hadoop2.2.0.jar 解釋下命令: --class 類名 --master local 本地模式  lib/spark-examples-1.0.0-hadoop2.2.0.jar  是你spark安裝目錄下的lib目錄下的examples的jar包,其實以後在windows上用intellij寫的spark程式也要打成jar包,放到這裡來呼叫。 執行結果如下圖:

2.2 standalone模式 首先進入spark安裝目錄下,啟動./sbin/start-all.sh,輸入jps,主節點看到Master,從節點看到worker 在安裝的spark目錄下敲入命令:./bin/spark-submit --class org.apache.spark.examples.SparkPi  --master spark://192.168.123.101:7077 lib/spark-examples-1.0.0-hadoop2.2.0.jar 解釋下命令: --master spark://192.168.123.101:7077    這個IP是要寫你在spark的conf目錄下配置的export SPARK_MASTER_IP的地址。

前三種方式不需要啟動hadoop,spark有自己的資源管理模式

2.3 on-yarn-cluster模式 大前提是master的機器和slave機器的系統時間要保持一致,不一致會有錯。 首先要進入hadoop安裝目錄下,啟動./sbin/start-all.sh,看到主節點和namenode secondarynamenode resourcemanager master和從節點有datanode  nodemanager worker 在安裝的spark目錄下敲入命令:./bin/spark-submit --class org.apache.spark.examples.SparkPi  --master yarn-cluster lib/spark-examples-1.0.0-hadoop2.2.0.jar

2.4 on-yarn-client模式

大前提是master的機器和slave機器的系統時間要保持一致,不一致會有錯。 要求和 on-yarn-cluster模式一樣。 在安裝的spark目錄下敲入命令:./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client lib/spark-examples-1.0.0-hadoop2.2.0.jar 所有執行模式命令都是參考Submitting Applications 網址:http://spark.apache.org/docs/latest/submitting-applications.html

---------------------