Spark2.2.0 分佈式離線搭建 原 薦

1、Spark簡介

Apache Spark 是專爲大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用並行框架,Spark,擁有Hadoop MapReduce所具有的優點;但不同於MapReduce的是——Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法。

Spark 是一種與 Hadoop 相似的開源集羣計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。

Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕鬆地操作分佈式數據集。

儘管創建 Spark 是爲了支持分佈式數據集上的迭代作業,但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統中並行運行。通過名爲 Mesos 的第三方集羣框架可以支持此行爲。Spark 由加州大學伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發,可用來構建大型的、低延遲的數據分析應用程序。

2、部署準備

2.1、安裝包準備

2.2、節點配置信息

IP地址 主機名
192.168.23.1 risen01
192.168.23.2 risen02
192.168.23.3 risen03

 

2.3、節點資源配置信息

IP地址

角色

192.168.23.1

master,worker

192.168.23.2

HA-Master,worker

192.168.23.3

worker

 

3、集羣配置與啓動

3.1、安裝包上傳與解壓

操作節點:risen01

操作用戶:root

1. 上傳安裝包spark-2.2.0-bin-hadoop2.6.tgz,scala-2.11.0.tgz,jdk-8u161-linux-x64.tar.gz(如果已經存在則不需要此步驟)到 risen01節點下的~/packages目錄下,結果如圖所示:

2. 解壓JDK安裝包,Spark安裝包Scala安裝包和到/usr/local下

操作節點:risen01

操作用戶:root

解壓JDK命令:

tar -zxvf ~/packeages/jdk-8u161-linux-x64.tar.gz -C /usr/local

解壓spark命令:

tar -zxvf ~/packages/spark-2.2.0-bin-hadoop2.6.tgz -C /usr/local

解壓Scala命令:

tar -zxvf ~/packages/scala-2.11.0.tgz -C /usr/local

3.2、啓動前準備

操作節點:risen01,risen02,risen03

操作用戶:root

1. 在/data目錄下新建立spark/work目錄用來存放spark的任務處理日誌

2. 在/log目錄下新建立spark目錄用來存放spark的啓動日誌等

3.3、修改配置文件

3.3.1、編輯spark-env.sh文件

操作節點:risen01

操作用戶:root

說明:請根據實際集羣的規模和硬件條件來配置每一項參數

進入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執行命令:

cp spark-env.sh.template spark-env.sh

編輯spark-env.sh文件,添加以下內容:

#設置spark的web訪問端口
SPARK_MASTER_WEBUI_PORT=18080

#設置spark的任務處理日誌存放目錄
SPARK_WORKER_DIR=/data/spark/work

#設置spark每個worker上面的核數
SPARK_WORKER_CORES=2

#設置spark每個worker的內存
SPARK_WORKER_MEMORY=1g

#設置spark的啓動日誌等目錄
SPARK_LOG_DIR=/log/spark

#指定spark需要的JDK目錄
export JAVA_HOME=/usr/local/jdk1.8.0_161

#指定spark需要的Scala目錄
export SCALA_HOME=/usr/local/scala-2.11.0

#指定Hadoop的安裝目錄
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop

#指定Hadoop的配置目錄
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop/

#實現spark-standlone HA(因爲我們HA實現的是risen01和risen02之間的切換不涉及risen03,所以這段配置risen03可有可無)
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=risen01:2181,risen02:2181,risen03:2181 -Dspark.deploy.zookeeper.dir=/data/spark"

3.3.2、 編輯spark-defaults.conf文件

操作節點:risen01

操作用戶:root

說明:請根據實際集羣的規模和硬件條件來配置每一項參數

進入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執行命令:

cp spark-defaults.conf.template spark-defaults.conf

編輯spark-defaults.conf文件,添加以下內容:

#設置spark的主節點
spark.master                      spark://risen01:7077

#開啓eventLog
spark.eventLog.enabled            true

#設置eventLog存儲目錄
spark.eventLog.dir                /log/spark/eventLog

#設置spark序列化方式
spark.serializer    org.apache.spark.serializer.KryoSerializer

#設置spark的driver內存
spark.driver.memory               1g

#設置spark的心跳檢測時間間隔
spark.executor.heartbeatInterval  20s

#默認並行數
spark.default.parallelism         20

#最大網絡延時
spark.network.timeout             3000s

3.3.3、 編輯slaves文件

操作節點:risen01

操作用戶:root

說明:請根據實際集羣的規模和硬件條件來配置每一項參數

進入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執行命令:

cp slaves.templete slaves

編輯slaves文件,修改localhost爲:

risen01
risen02
risen03

3.4、分發其他節點

1. 執行scp命令:

操作節點:risen01

操作用戶:root

scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen02:/usr/local
scp -r /usr/local/scala-2.11.0 root@risen02:/usr/local
scp -r /usr/local/jdk1.8.0_161 root@risen02:/usr/local
scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen03:/usr/local
scp -r /usr/local/scala-2.11.0 root@risen03:/usr/local
scp -r /usr/local/jdk1.8.0_161 root@risen03:/usr/local

2. 需要提前創建好bigdata用戶並實現免密(這裏不再贅述,此步驟如果做過可不做)

3. 權限修改

操作節點:risen01,risen02,risen03

操作用戶:root

修改/log/spark權限命令:

chown -R bigdata.bigdata /log/spark

修改/data/spark權限命令:

chown -R bigdata.bigdata /data/spark

修改spark的安裝目錄命令:

chown -R bigdata.bigdata /usr/local/spark-2.2.0-bin-hadoop2.6

修改Scala的安裝目錄命令:

chown -R bigdata.bigdata /usr/local/scala-2.11.0

修改JDK1.8的安裝目錄命令:(此步驟如果做過可不做)

chown -R bigdata.bigdata /usr/local/jdk1.8.0_161

結果如圖下所示:

3.5、啓動集羣

操作節點:risen01,risen02

操作用戶:bigdata

(1) 進入到/usr/local/spark-2.2.0-bin-hadoop2.6/sbin目錄下執行./start-all.sh,查看web界面如下圖所示:

然後在進入到risen02機器的spark安裝目錄下/usr/local/spark-2.2.0-bin-hadoop2.6/sbin執行命令./start-master.sh啓動spark集羣的備用主節點。(記得一定要啓動備用主節點的進程,這裏我們只用risen02做備用主節點,risen03雖然也配置了有資格,但是暫時我們不需要)

(2) 進入到/usr/local/spark-2.2.0-bin-hadoop2.6/bin目錄下執行spark-shell,並測試統計詞頻的測試,結果如下圖所示:

截止到此,spark-standlone模式便安裝成功了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章