如題
目錄
環境搭建:單機、僞分布、完全分布、高可用
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)測試

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 控制台頁面。
<code>bin/spark-shell</code> 啟動 shell,然後在浏覽器輸出 <code>zgg:4040</code>
采用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 控制台頁面。
在 node1 執行 <code>bin/spark-shell</code> 啟動 shell,然後在浏覽器輸出 <code>node1:4040</code>
應用程式測試:
下載下傳解壓後,增加如下配置即可。
在 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> 檢視,如下:
節點規劃:
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>。
此時,kill 掉 node1 上的 master
再檢視,發現 node1 已打不開,node2 成為 <code>ALIVE</code>。說明 node2 代替 node1 成為 <code>Master</code>。