在前一篇文章中,我們已經搭建好了Hadoop的群集,接下來,我們就是需要基於這個Hadoop群集,搭建Spark的群集。由於前面已經做了大量的工作,所以接下來搭建Spark會簡單很多。 首先打開三個虛擬機,現在我們需要安裝Scala,因為Spark是基於Scala開發的,所以需要安裝Scala。在U ...
在前一篇文章中,我們已經搭建好了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的網站:
可以看到2個worker都啟動。
最後,我們運行一下Spark的示常式序:
/usr/local/spark/bin/run-example SparkPi 10 --slave01 local[2]
可以在結果中找到
Pi is roughly 3.14XXXXX
說明我們運行成功了。