在Ubuntu下搭建Spark群集

深藍發表於2016-12-20

前一篇文章中,我們已經搭建好了Hadoop的群集,接下來,我們就是需要基於這個Hadoop群集,搭建Spark的群集。由於前面已經做了大量的工作,所以接下來搭建Spark會簡單很多。

首先開啟三個虛擬機器,現在我們需要安裝Scala,因為Spark是基於Scala開發的,所以需要安裝Scala。在Ubuntu下安裝Scala很簡單,我們只需要執行

sudo apt-get install scala

就可以安裝Scala了。

安裝完成後執行scala -version可以看到安裝的Scala的版本,我現在2.11版,安裝目錄是在/usr/share/scala-2.11 。

接下來下載Spark。到官方網站,找到最新版的Spark的下載地址,選擇Hadoop版本,

http://spark.apache.org/downloads.html

wget http://spark下載地址

當下載完畢後解壓檔案:

tar xvf spark-2.0.2-bin-hadoop2.7.tgz

接下來我們需要將解壓的資料夾移動到指定目錄,因為之前我們Hadoop安裝到/usr/local/hadoop,所以我們也可以把Spark放在/usr/local/spark下:

sudo mv spark-2.0.2-bin-hadoop2.7 /usr/local/spark

進入spark資料夾下的conf資料夾,裡面有個spark-env.sh.template檔案,是spark環境變數設定的目標,我們可以複製一個出來:

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

然後編輯該檔案

vi spark-env.sh

在檔案的末尾我們新增上以下內容:

export SCALA_HOME=/usr/share/scala-2.11 
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop 
SPARK_MASTER_IP=master 
SPARK_LOCAL_DIRS=/usr/local/spark 
SPARK_DRIVER_MEMORY=1G 
export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native/:$LD_LIBRARY_PATH

這裡的內容是根據我虛擬機器的環境來的,如果安裝的版本和路徑不一樣,可以根據實際情況更改。

接下來設定slaves檔案。

cp slaves.template slaves
vi slaves

將內容改為

slave01

slave02

Spark在一臺機器上就算配置完畢,接下來在另外兩臺機器上也做一模一樣的配置即可。

啟動Spark

在master上,我們先啟動Hadoop,然後執行

/usr/local/spark/sbin/start-all.sh

便可啟動Spark。

執行jps看看Java程式:

2929 Master
2982 Jps
2294 SecondaryNameNode
2071 DataNode
1929 NameNode
2459 ResourceManager
2603 NodeManager

發現比Hadoop啟動的時候多了Master程式。

切換到slave01節點上,執行JPS,看看程式:

1889 Worker
1705 NodeManager
1997 Jps
1551 DataNode

這裡比Hadoop的時候多了一個Worker程式。說明我們的Spark群集已經啟動成功。

下面訪問Spark的網站:

http://192.168.100.40:8080/

可以看到2個worker都啟動。

image

最後,我們執行一下Spark的示例程式:

/usr/local/spark/bin/run-example SparkPi 10 --slave01 local[2]

可以在結果中找到

Pi is roughly 3.14XXXXX

說明我們執行成功了。

相關文章