您現在的位置是:首頁 > 武術
Apache Spark - 在Linux、Ubuntu上安裝
- 由 程式設計大K 發表于 武術
- 2023-01-08
戰術小隊打過半折嗎
本文旨在幫助Spark初學者,學習如何在基於Linux的Ubuntu伺服器上安裝Apache Spark,同樣的步驟也可用於安裝Centos、Debian等。在現實環境中,所有的Spark應用程式都執行在基於Linux的作業系統上,因此,瞭解如何在一些基於Unix的作業系統上安裝和執行Spark應用程式,如Ubuntu伺服器,是一件好事。
雖然這篇文章解釋的是Ubuntu,但你可以按照這些步驟在任何基於Linux的作業系統上安裝Spark,如Centos,Debian等,我按照下面的步驟在Ubuntu伺服器上設定我的Apache Spark叢集。
預備知識:
執行Ubuntu伺服器
對Ubuntu伺服器的root許可權
如果你只是想獨立執行Spark,請繼續閱讀這篇文章。
在Ubuntu上安裝Java
Apache Spark是用Scala編寫的,Scala是一種Java語言,因此要執行Spark,你需要安裝Java。由於甲骨文的Java在這裡得到了許可,我使用openJDK Java。如果你想使用其他供應商或Oracle的Java,請這麼做。這裡我將使用JDK 8。
sudo apt-get -y install openjdk-8-jdk-headless
在JDK安裝後,透過執行java -version檢查其是否安裝成功
在Ubuntu上安裝Python(可選)
如果你想在Ubuntu伺服器上用Scala和Java執行Spark,你可以跳過這一部分。
如果你想在Ubuntu伺服器上執行PySpark的例子(用Python的Spark),就需要安裝Python。
sudo apt install python3
當然這邊推薦你安裝Anaconda3,
wget -P /tmp https://repo。anaconda。com/archive/Anaconda3-2020。02-Linux-x86_64。sh
bash /tmp/Anaconda3-2020。02-Linux-x86_64。sh
Apache Spark在Ubuntu上的安裝
為了在基於Linux的Ubuntu上安裝Apache Spark,請訪問
Apache Spark下載
網站,進入下載Apache Spark部分,如下圖所示,點選第3點的提供的下載連結,這將帶你到有映象URL的頁面進行下載,從其中一個映象站點複製連結。
如果你想使用不同版本的Spark & Hadoop,從下拉選單中選擇你想要的版本(第1點和第2點);第3點的連結會變為所選的版本,併為你提供一個更新的下載連結。
使用wget命令將Apache Spark下載到你的Ubuntu伺服器。
wget https://downloads。apache。org/spark/spark-3。0。1/spark-3。0。1-bin-hadoop2。7。tgz
一旦你的下載完成,用tar命令解壓縮檔案檔案內容,tar是一個檔案歸檔工具。一旦解壓完成,將資料夾重新命名為spark。
tar -xzf spark-3。0。1-bin-hadoop2。7。tgz
mv spark-3。0。1-bin-hadoop2。7 spark
TODO - Add Python environment
Spark環境變數
在。bashrc或。profile檔案中新增Apache Spark環境變數。用vi編輯器開啟檔案,新增以下變數。
sparkuser@sparknode:~$ vi ~/。bashrc
# Add below lines at the end of the 。bashrc file。
export SPARK_HOME=/home/sparkuser/spark
export PATH=$PATH:$SPARK_HOME/bin
現在,透過執行以下命令將環境變數載入到已開啟的會話中
sparkuser@sparknode:~$ source ~/。bashrc
如果你添加了。profile檔案,那麼透過關閉和重新開啟會話來重新啟動你的會話。
測試Ubuntu上的Spark安裝
就這樣,Apache Spark在Linux Ubuntu上的安裝完成了。現在讓我們來執行一個Spark二進位制發行版附帶的例子。
這裡我將使用Spark-Submit命令透過執行org。apache。spark。examples。SparkPi例子來計算10個地方的PI值。你可以在
$SPARK_HOME/bin
目錄下找到spark-submit:
spark-submit ——class org。apache。spark。examples。SparkPi spark/examples/jars/spark-examples_2。12-3。0。1。jar 10
Spark Shell
Apache Spark的二進位制檔案帶有一個互動式的spark-shell。為了啟動一個shell來使用Scala語言,請到你的$SPARK_HOME/bin目錄下,輸入 “spark-shell”。這個命令會載入Spark並顯示你所使用的Spark的版本。
注意:在spark-shell中,你只能用Scala執行Spark。為了執行PySpark,你需要透過執行
$SPARK_HOME/bin/pyspark
開啟pyspark shell。在執行pyspark shell之前,請確保你已經安裝了Python。
預設情況下,spark-shell提供了spark(SparkSession)和sc(SparkContext)物件供使用。讓我們來看看一些例子。
Spark-shell還建立了一個Spark上下文的Web UI,預設情況下,它可以從
http://ip-address:4040
。
Spark的Web UI
Apache Spark提供了一套Web UI(Jobs, Stages, Tasks, Storage, Environment, Executors, and SQL)來監控你的Spark應用程式的狀態,Spark叢集的資源消耗,以及Spark的配置。在Spark Web UI上,你可以看到Spark動作和轉換操作是如何執行的。你可以透過開啟
http://ip-address:4040/
。用你的伺服器IP替換ip-address。
Spark歷史伺服器
Spark歷史伺服器,保留了你透過spark-submit和spark-shell提交的所有完成的Spark應用程式的日誌。
建立
$SPARK_HOME/conf/spark-defaults。conf
檔案並新增以下配置:
# Enable to store the event log
spark。eventLog。enabled true
#Location where to store event log
spark。eventLog。dir file:///tmp/spark-events
#Location from where history server to read event log
spark。history。fs。logDirectory file:///tmp/spark-events
建立Spark事件日誌目錄。Spark為你提交的所有應用程式保留日誌:
sparkuser@sparknode:~$ mkdir /tmp/spark-events
執行
$SPARK_HOME/sbin/start-history-server。sh
來啟動歷史伺服器。
sparkuser@sparknode:~$ $SPARK_HOME/sbin/start-history-server。sh
starting org。apache。spark。deploy。history。HistoryServer, logging to /home/sparkuser/spark/logs/spark-sparkuser-org。apache。spark。deploy。history。HistoryServer-1-sparknode。out
按照配置,歷史伺服器預設執行在18080埠:
使用spark-submit命令再次執行PI例項,並重新整理History伺服器,它應該顯示最近的執行情況。
總結
綜上所述,已經學會了在基於Linux的Ubuntu伺服器上安裝Apache Spark的步驟,也學會了如何啟動History伺服器,訪問Web UI。