天天看點

spark環境搭建:單機、僞分布、完全分布、高可用

如題

目錄

環境搭建:單機、僞分布、完全分布、高可用

1、單機

1.1、安裝jdk、hadoop

1.2、安裝scala

1.3、安裝Spark

2、僞分布:Standalone

2.1、安裝jdk、hadoop

2.2、安裝scala

2.3、安裝Spark

3、完全分布:Standalone

3.1、硬體配置

3.2、軟體版本

3.3、準備工作

3.3.1、建立虛拟機,網絡設定為橋接模式

3.3.2、更改主機名

3.3.3、綁定主機名和IP,建立各主機間的聯系

3.3.4、關閉防火牆

3.3.5、配置主控端hosts檔案

3.3.6、配置SSH,實作節點間的無密碼登入

3.3.7、各節點安裝jdk、scala、hadoop

3.4、安裝Spark

4、完全分布:YARN

5、高可用

5.1、安裝ZOOKEEPER

5.2、重新配置配置檔案

5.3、啟動

5.4、web 檢視

(1)下載下傳、解壓

(2)配置環境變量

(3)要打開 Python 版本的 Spark shell,進入你的 Spark 目錄然後輸入:

如果要打開 Scala 版本的 shell,輸入:

(4)如果覺得shell中輸出的日志資訊過多,可以調整日志的級别來控制輸出的資訊量。 可以重新配置conf 目錄下的<code>log4j.properties.template</code>檔案。把下面這行修改為:

(5)測試

spark環境搭建:單機、僞分布、完全分布、高可用

jdk:1.8.0_271

hadoop:hadoop-3.2.1

版本:2.12.12

https://www.scala-lang.org/download/2.12.12.html

版本:3.0.1

http://archive.apache.org/dist/spark/spark-3.0.1/

(3)配置配置檔案

(4)啟動

先啟動 hadoop,後啟動 spark。

進入 spark 的 sbin 目錄下執行 start-all.sh 啟動 spark,出現了 master 和 worker

在浏覽器輸出 <code>zgg:8080/</code> ,進入 spark 的 web 控制台頁面。

spark環境搭建:單機、僞分布、完全分布、高可用

<code>bin/spark-shell</code> 啟動 shell,然後在浏覽器輸出 <code>zgg:4040</code>

spark環境搭建:單機、僞分布、完全分布、高可用
spark環境搭建:單機、僞分布、完全分布、高可用
spark環境搭建:單機、僞分布、完全分布、高可用

采用3台虛拟機

節點名稱

IP位址

記憶體

硬碟

節點角色

node1

192.168.1.6

2GB

10GB

MASTER

node2

192.168.1.7

WORKER

node3

192.168.1.8

軟體

版本

JDK

jdk-8u271

HADOOP

hadoop-3.2.1

SPARK

spark-3.0.1-bin-hadoop3.2

[詳細見hadoop完全分布式安裝]

在 node1 上,下載下傳,解壓,并配置環境變量:

将 /etc/profile 複制到 node2 和 node3

配置配置檔案

将 node1 的 spark 目錄拷貝到 node2 和 node3 上

啟動

先啟動 hadoop,再啟動 spark。

在 node1 中執行 <code>sbin/start-all.sh</code> 啟動 spark:

在浏覽器輸出 <code>node1:8080/</code> ,進入 spark 的 web 控制台頁面。

spark環境搭建:單機、僞分布、完全分布、高可用

在 node1 執行 <code>bin/spark-shell</code> 啟動 shell,然後在浏覽器輸出 <code>node1:4040</code>

spark環境搭建:單機、僞分布、完全分布、高可用

應用程式測試:

下載下傳解壓後,增加如下配置即可。

在 hadoop 叢集上提前建立 spark_directory 日志路徑

在 spark-default.conf 檔案中配置 Spark 日志路徑

在 <code>conf/spark-env.sh</code> 檔案中配置 YARN 配置檔案路徑、配置曆史伺服器 相關參數

把 hive 中 <code>lib/datanucleus-*.jar</code> 包拷貝到 spark 的 <code>jars/</code> 路徑下。

把 hive 中 <code>conf/hive-site.xml</code> 包拷貝到 spark 的 <code>conf/</code> 路徑下。

進入 <code>node1:8088</code> 檢視,如下:

spark環境搭建:單機、僞分布、完全分布、高可用
spark環境搭建:單機、僞分布、完全分布、高可用

節點規劃:

MASTER、WORKER

參考 ZOOKEEPER完全分布式

<code>slave</code> 不變。【要根據節點規劃來設定】

對 <code>conf/spark-env.sh</code>:

分别在浏覽器輸入 <code>node1:8080</code> 、<code>node2:8080</code>,如下所示,發現 node1 為 <code>ALIVE</code>, node2 為 <code>STANDBY</code>。

spark環境搭建:單機、僞分布、完全分布、高可用
spark環境搭建:單機、僞分布、完全分布、高可用

此時,kill 掉 node1 上的 master

再檢視,發現 node1 已打不開,node2 成為 <code>ALIVE</code>。說明 node2 代替 node1 成為 <code>Master</code>。

spark環境搭建:單機、僞分布、完全分布、高可用
spark環境搭建:單機、僞分布、完全分布、高可用