Spark叢集環境搭建
阿新 • • 發佈:2018-12-09
本文作者:賀聖軍,叩丁狼高階講師。原創文章,轉載請註明出處。
現在在大資料的生態圈的離線的處理主要使用的是MapReduce和Hive技術,但是對於實時處理分析,越來越多的企業使用的Spark作為企業的記憶體處理計算框架,相對於MapReduce,Spark主要有以下一些特點:
- Spark基於記憶體運算要比MapReduce塊100倍,基於HDFS也要快10倍以上
- Spark簡單易用,有相對成熟的API,支援使用Scala,Python和Java的API
- Spark提供了統一的解決方案,Spark可以用於批處理,互動式查詢,實時處理,機器學習和圖計算
- 相容性好,Spark可以執行在standalone,YARM,Mesos等資源排程管理框架
接下來我們來搭建一個Spark的叢集模式,本教程講搭建Spark2.3的版本,其中依賴的相關配置如下
- 作業系統:CentOS Linux release 7.5.1804 (Core)
- jdk使用 1.8.0_171
- hadoop版本使用 hadoop-2.9.1(使用HDFS檔案系統)
- 註冊中心使用zookeeper-3.4.12
安裝好上述相關軟體,我們來時我們的Spark叢集規劃
主從節點 | lab201 | lab202 | lab203 |
---|---|---|---|
Master節點 | √ | √ | |
Worker節點 | √ | √ | √ |
[[email protected] soft]# pwd
/root/soft
[root[email protected] soft]# ls |grep sp
spark-2.3.1-bin-hadoop2.7.tgz
- 解壓檔案到指定的安裝目錄
[[email protected] soft]# tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz -C ~/apps/
[[email protected] apps]# pwd /root/apps [[email protected] apps]# ls hadoop-2.9.1 hive-1.2.2 jdk1.8 maven-3.5.4 spark-2.3.1-bin-hadoop2.7 zookeeper-3.4.12
- 使用scp命令分別拷貝到另外兩臺主機
[[email protected] apps]# scp -r spark-2.3.1-bin-hadoop2.7/ lab202:$PWD
[[email protected] apps]# scp -r spark-2.3.1-bin-hadoop2.7/ lab203:$PWD
- 拷貝完成以後開始修改對應的配置檔案
spark-env.sh:主要配置JAVA_HOME,是spark程式的啟動配置檔案
[[email protected] conf]# mv spark-env.sh.template spark-env.sh
[[email protected] conf]# vi spark-env.sh
#配置java的執行環境
JAVA_HOME=/root/apps/jdk1.8
#配置Master節點使用ZKserver進行註冊管理,避免單節點故障
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=lab201:2181-Dspark.deploy.zookeeper.dir=/spark"
#配置HADOOP環境的配置目錄,根據HADOOP的客戶端配置決定預設是讀取HDFS還是本地file:///
HADOOP_CONF_DIR=/root/apps/hadoop-2.9.1/etc/hadoop
- slaves: 主要配置從節點Worker的地址
[[email protected] conf]# mv slaves.template slaves
[[email protected] conf]# vi slaves
lab201
lab202
lab203
- 把修改的配置檔案拷貝到另外兩臺主機
[[email protected] conf]# scp slaves spark-env.sh lab202:$PWD
[[email protected] conf]# scp slaves spark-env.sh lab203:$PWD
-
啟動master節點和worker節點
在lab201執行 sbin/start-all.sh
[[email protected] spark-2.3.1-bin-hadoop2.7]# pwd
/root/apps/spark-2.3.1-bin-hadoop2.7
[[email protected] spark-2.3.1-bin-hadoop2.7]# sbin/start-all.sh
- 在lab202 單獨啟動marster叢集
[[email protected] spark-2.3.1-bin-hadoop2.7]# sbin/start-master.sh
-
通過jps檢查程序是否正常啟動
lab201
[[email protected] spark-2.3.1-bin-hadoop2.7]# jps
2517 Jps
2455 Worker
1496 QuorumPeerMain
2348 Master
lab202
[[email protected] spark-2.3.1-bin-hadoop2.7]# jps
1552 QuorumPeerMain
2409 Jps
2253 Worker
2334 Master
lab203
[[email protected] bin]# jps
2195 Jps
2137 Worker
1550 QuorumPeerMain
如果都有上面的Master和Worker程序說明啟動成功
-
當然,我們也可以通過訪問Spark的管理頁面看到其中的執行狀態
其中一個狀態為ALIVE 另外一個狀態為STANDBY
好了,關於Spark的叢集環境搭建基本上已經完成. 我們就可以開始Spark框架的學習了。