Spark-2.3叢集安裝
1、下載
2、解壓安裝
- 上傳至master伺服器
- 解壓至/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