執行第一個Spark程式
阿新 • • 發佈:2018-11-10
我們這裡使用官方的Spark自帶的一個程式來體驗一下Spark的執行
Spark自帶的例子是利用蒙特·卡羅演算法求PI
在Spark目錄下執行下面命令
bin/spark-submit \
>--master spark://cdh0:7077 \
>--class org.apache.spark.examples.SparkPi \
examples/jars/spark-examples_2.11-2.1.0.jar 100
說明:
bin/spark-submit是提交Spark程式的命令, --master spark://cdh0:7077 是指定Master在哪臺機器上,--class org.apache.spark.examples.SparkPi指定包名,Spark執行程式jar包的所在目錄,100是指取樣次數
注意: 這裡的--master可以指定多個Master,保證高可用,例如:spark://cdh0:7077,cdh1:7077
執行結果:
當然在WEBUI介面中也可以檢視到:
說明:
Cores指使用核數(執行緒數),這裡預設使用所有的核數,Memory per Node指使用的記憶體,預設是用1G,這裡在實際生產環境中都是要自己進行指定的,在提交Spark程式時加入以下命令:
--executor-memory 1G \ --每個executor使用的記憶體大小 --total-executor-cores 2 \ --整個程式使用的核數
注意: 這裡--executor-memory不僅支援G,還支援mb
這裡的Spark程式執行時間比較短,如果你擴大采樣次數,你就會發現在執行Spark任務的當前機器上多了兩個程序,而其他Worker節點機器上也多了一個程序
SparkSubmit程序是提交Spark程式的,CoarseGrainedExecutorBackend程序是用來計算的,這兩個程序都是Spark程式執行完之後就會被銷燬的,以此來釋放資源