1. 程式人生 > >Spark-2.3叢集安裝

Spark-2.3叢集安裝

1、下載

2、解壓安裝

  1. 上傳至master伺服器
  2. 解壓至/opt/目錄
$ tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz -C /opt/
$ mv spark-2.3.0-bin-hadoop2.7 spark-2.3.0

3、配置資訊

# 環境配置
vi /etc/profile
# 內容:
 export SPARK_HOME=/opt/spark-2.3.0
 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

cd /opt/spark-2.3.0/conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh

# 內容:
export JAVA_HOME=/usr/java/default
export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
export YARN_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
export SPARK_MASTER_PORT=7077
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=slave1:2181,slave2:2181,slave3:2181 -Dspark.deploy.zookeeper.dir=/spark"

mv slaves.template slaves
# 內容:
master
slave1
slave2
slave3

4、分發

[[email protected] opt]$ scp -r spark-2.3.0/ slave1:$PWD
[[email protected] opt]$ scp -r spark-2.3.0/ slave2:$PWD
[[email protected] opt]$ scp -r spark-2.3.0/ slave3:$PWD

5、啟動

5.1、地執行模式 (單機)

該模式執行任務不會提交在叢集中,只在本節點執行,與Master無關;

spark-shell --master local 

5.2、啟動為Local 模式(單機)

該模式執行任務不會提交在叢集中,只在本節點執行,與master無關;

spark-shell

5.3、啟動為叢集模式(spark standalone模式)(必須啟動master和worker)

該模式的區別是Spark自己給自己排程資源,必須指明ALIVE的master地址,地址不對就報錯(不能指定standby的master),不能計算

先要啟動master和worker , 並找到master ,哪個節點是master就指明ALIVE的master地址;

spark-shell --master spark://master:7077

5.4、啟動為叢集模式(spark on yarn模式)(一定別啟動Master和Worker):

該模式是用yarn來排程資源;

注意:一定別啟動master,否則會卡很久,然後產生問題:hadoop04:4040無法訪問,但是可以計算;

報錯原因:記憶體資源給的過小,yarn直接kill掉程序,則報rpc連線失敗、ClosedChannelException等錯誤。

解決方法:

先停止YARN服務,然後修改yarn-site.xml,增加如下內容:

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
<description>Whether virtual memory limits will be enforced for containers</description>
</property>

<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
<description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
</property>

將新的yarn-site.xml檔案分發到其他Hadoop節點對應的目錄下,最後在重新啟動YARN;

spark-shell --master yarn-client

6、Master情況下檢查是否啟動成功

jps 檢視是否有Master 和 Worker程序;

7、結束Spark節點和程序

7.1、在任意啟動Spark的Worker程序的節點執行:

cd /opt/spark-2.3.0/sbin

./stop-all.sh

7.2、單獨啟動Master的需要單獨的結束

cd /opt/spark-2.3.0/sbin

./stop-master.sh

8、Spark-shell及簡單測試

安裝Spark的任意節點輸入spark-shell;

Spark預設是本地模式

scala> var list = List(1,2,3,4)
    list: List[Int] = List(1, 2, 3, 4)
scala> var rdd=sc.makeRDD(list)
    rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at makeRDD at <console>:26 
scala> rdd.count()
    res0: Long = 4 

9、退出spark-shell

  ctrl+d