一、版本信息
虛擬機產品:VMware? Workstation 17 Pro ? 虛擬機版本:17.0.0 build-20800274
ISO映像文件:ubuntukylin-22.04-pro-amd64.iso
Hadoop版本:Hadoop 3.1.3
JDK版本:Java JDK 1.8
Spark版本:Spark 2.4.0
這里有我放的百度網盤下載鏈接,讀者可以自行下載:
鏈接:https://pan.baidu.com/s/121zVsgc4muSt9rgCWnJZmw?
提取碼:wkk6
注意:其中的ISO映像文件為ubuntukylin-16.04.7版本的而不是22.04版本,22.04版本內存過大無法上傳,見諒!!!
也可去Spark官網進行下載:Spark官方下載地址
二、安裝Hadoop(偽分布式)
Spark的安裝過程較為簡單,在已安裝好 Hadoop 的前提下,經過簡單配置即可使用。
如果讀者沒有安裝Hadoop3.1.3(偽分布式),請訪問林子雨老師的Hadoop3.1.3安裝教程進行Hadoop的偽分布式安裝:Hadoop3.1.3安裝教程_單機/偽分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_廈大數據庫實驗室博客https://dblab.xmu.edu.cn/blog/2441-2/
三、安裝JAVA JDK
安裝Hadoop3.1.3的過程就已經要求安裝JAVA JDK1.8了。如果沒有,請參考林子雨老師的Hadoop安裝教程_單機/偽分布式配置_Hadoop3.1.3/Ubuntu18.04進行安裝配置。
四、安裝Spark(Local模式)
在安裝Spark之前默認讀者已經在虛擬機軟件上安裝VMware Tools,若沒有安裝請移步于本人的另一篇文章:真·保姆級——在VMware的Ubuntukylin上進行Hadoop單機/偽分布式安裝時安裝VMware Tools后虛擬機與物理機之間無法傳輸文件和復制粘貼的問題(附Ubuntu更改默認登錄用戶)-CSDN博客
1.將Spark安裝包移到下載目錄中
將物理機上下載的Spark安裝包拖拽到讀者虛擬機Ubuntu系統家目錄中的下載目錄中:
2.下載Spark并確保hadoop用戶對Spark目錄有操作權限
sudo tar -zxf ~/下載/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark # 此處的 hadoop 為你的用戶名
- 將Apache Spark壓縮包解壓到
/usr/local/
目錄下 - 切換當前工作目錄到
/usr/local
- 將解壓出來的Spark目錄重命名為
spark
,以便于記憶和管理 - 將
/usr/local/spark
目錄及其子目錄和文件的所有權更改為用戶hadoop
,確保該用戶對Spark目錄有操作權限,便于后續的配置和使用
五、修改Spark的配置文件
安裝Spark后,還需要修改Spark的配置文件spark-env.sh
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
- 切換當前工作目錄到
/usr/local/spark
。這個目錄是Apache Spark的安裝目錄,之前的步驟中已經將Spark解壓并重命名到這個位置 - 創建一個可編輯的環境配置文件
spark-env.sh
,基于模板文件spark-env.sh.template
。通過編輯這個文件,可以自定義Spark的運行環境,例如設置JVM選項、Spark的工作節點內存限制、日志配置等
編輯spark-env.sh文件:
vim ./conf/spark-env.sh
在第一行添加以下配置信息并保存:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
配置完成后就可以直接使用,不需要像Hadoop運行啟動命令。
六、驗證Spark是否安裝成功
通過運行Spark自帶的示例,驗證Spark是否安裝成功。
cd /usr/local/spark
bin/run-example SparkPi
運行Apache Spark自帶的一個示例程序 —— SparkPi。
這個示例程序計算π的值,是一個經典的計算密集型任務,常用來測試Spark集群的安裝是否成功以及其基本的運行情況
下面詳細解釋這些命令的作用:
-
cd /usr/local/spark
:這條命令將當前的工作目錄切換到Apache Spark的安裝目錄。前提是讀者已經按照之前的指導安裝并配置了Spark,并且將其安裝在了/usr/local/spark
目錄下。 -
bin/run-example SparkPi
:這條命令實際上是運行Spark自帶的一個示例程序。?
bin/run-example
?是一個腳本,位于Spark安裝目錄下的bin
文件夾中。它用于運行Spark自帶的示例程序。SparkPi
?是要運行的示例程序的名稱。這個程序通過蒙特卡洛方法計算π的值。
具體來說,這個命令的執行過程如下:
- 當執行?
bin/run-example SparkPi
?命令時,Spark會啟動一個應用程序實例,并執行計算π值的任務。 - 這個任務會被分解成多個小任務(task),并可能在一個或多個工作節點(如果讀者配置了Spark集群的話)上并行執行。
- 執行完成后,程序會輸出計算得到的π值。
執行時會輸出非常多的運行信息,輸出結果不容易找到,bin/run-example SparkPi 2>&1 | grep "Pi is"
這條命令的作用是運行SparkPi示例程序,然后搜索并顯示所有包含“Pi is”的輸出行,顯示程序計算出的π值的那一行,因此這個命令可以幫助用戶直接查看計算結果,而不必手動從可能很長的程序輸出中尋找相關信息。
bin/run-example SparkPi 2>&1 | grep "Pi is"
下面詳細解釋這些命令的作用:
-
bin/run-example SparkPi
:運行Spark自帶的示例程序SparkPi。這個程序計算π的值,是一個用來測試Spark安裝和配置是否正確的經典示例。 -
2>&1
:這部分是重定向命令。2
代表標準錯誤(stderr),1
代表標準輸出(stdout)。2>&1
的意思是將標準錯誤重定向到標準輸出,這樣錯誤信息和正常輸出信息都會被發送到同一個地方(即標準輸出)。 -
| grep "Pi is"
:‘|'
是管道符,它的作用是將前一個命令的輸出作為后一個命令的輸入。grep
是一個文本搜索工具,可以根據指定的模式(pattern)搜索文本。這里,grep "Pi is"
表示搜索包含“Pi is”的行。
過濾后的運行結果如下圖示:
至此,Spark安裝成功!!!