spark2.2.0-hadoop2.6.0預編譯叢集安裝
1、下載解壓
將下載好的spark-2.2.0-bin-hadoop2.6.tgz包移動到netcloud03 netcloud04 netcloud05 各節點的/opt目錄下並解壓
2、Spark基於Standalone執行模式進行配置
1)測試
cd /opt/spark-2.2.0-bin-hadoop2.6
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[8] examples/jars/spark-examples_2.11-2.2.0.jar 100
其中SparkPi:指定執行程式(計算π的值),master:指定模式,local為本地模式,[1]表示一個執行緒,100表示傳遞的引數
2)配置(spark內建的主從,master,worker)
Note:主節點是netcloud03,從節點netcloud04、netcloud05
進入conf目錄下重新命名 slaves.template 為slaves 、spark-env.sh.template 為 spark-env.sh
vi slaves :新增從節點(worker節點)netcloud04、netcloud05
vi spark-env.sh 新增如下內容:
export JAVA_HOME=/usr/local/jdk1.8.0
export SPARK_MASTER_IP=netcloud03
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=18080
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_PORT=7078
# export SPARK_WORKER_INSTANCES=1 #spark2.x以後不需要配置
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
3、Spark基於Yarn執行模式進行配置(企業生產環境)
1)測試
cd /opt/spark-2.2.0-bin-hadoop2.6
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[8] examples/jars/spark-examples_2.11-2.2.0.jar 100
其中SparkPi:指定執行程式(計算π的值),master:指定模式,local為本地模式,[1]表示一個執行緒,100表示傳遞的引數
2)配置(spark內建的主從,master,worker)
Note:主節點是netcloud03,從節點netcloud04、netcloud05
進入conf目錄下重新命名 slaves.template 為slaves 、spark-env.sh.template 為 spark-env.sh
vi slaves :新增從節點(worker節點)netcloud04、netcloud05
vi spark-env.sh 新增如下內容:
export JAVA_HOME=/usr/local/jdk1.8.0
export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.5/etc/hadoop
export SPARK_HOME=/opt/spark-2.2.0-bin-hadoop2.6
export SPARK_MASTER_IP=netcloud03
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=18080
export SPARK_WORKER_WEBUI_PORT=18081
export SPARK_WORKER_PORT=7078
# export SPARK_WORKER_INSTANCES=1 #spark2.x以後不需要配置
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
#以下內容是實際生產環境的效能優化的選配 這裡我們先不做配置
#export SPARK_EXECUTOR_INSTANCES=1
export SPARK_EXECUTOR_CORES=4
export SPARK_EXECUTOR_MEMORY=4G
export SPARK_DRIVER_MEMORY=6G
export SPARK_WORKER_DIR=/opt/spark-2.2.0/work
export SPARK_LOG_DIR=/opt/spark-2.2.0/logs
export SPARK_PID_DIR=/opt/spark-2.2.0/tmp1
#與pyspark的整合時需要的配置(選配)
export PYSPARK_PYTHON=/opt/python2/bin/python
export PYSPARK3_PYTHON=/opt/py3.5/bin/python
注: 配置master高可用:在master節點上配置,每啟動一個master都會向zk傳遞資料
記得配置master節點對其他節點的免密碼登入,另外修改export SPARK_MASTER_IP
為對應所需的主節點,再啟動sbin/start-master.sh(下面內容在該配置檔案中配置,不配置高可用則不需新增)
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=netcloud03:2181,netcloud04:2181,netcloud05:2181"
4、在yarn模式下啟動
[[email protected] spark-2.2.0-bin-hadoop2.6]# ./sbin/start-all.sh
5、任務提交測試
1)client模式
[[email protected] spark-2.2.0-bin-hadoop2.6]#./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 1G --num-executors 1 examples/jars/spark-examples_2.11-2.2.0.jar 100
2)cluster模式:(結果spark1:18080裡面可見)
[[email protected] spark-2.2.0-bin-hadoop2.6]#./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 1G --num-executors 1 examples/jars/spark-examples_2.11-2.2.0.jar 100
注:如果記憶體不夠時可以將1G改下,如512M
記憶體不夠可能出現的錯誤:WARN cluster.YarnScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources