1. 程式人生 > >spark2.2.0-hadoop2.6.0預編譯叢集安裝

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