Hadoop2.6.0上的spark1.5.2集群搭建
來自: http://my.oschina.net/amui/blog/610329
一、Spark安裝前提
安裝Spark之前需要先安裝Hadoop集群,因為之前已經安裝了hadoop,所以我直接在之前的hadoop集群上安裝spark,但是因為機器內存不夠,我只選擇master以及slave01安裝spark集群,而不要slave02了。
hadoop集群的安裝參考之前的博文:http://my.oschina.net/amui/blog/610288
二、Spark安裝步驟:
1.下載scala-2.11.7.tgz
http://www.scala-lang.org/download/2.11.7.html
2.下載spark-1.5.2-bin-hadoop2.6.tgz(之前安裝的hadoop是2.6.0的)
http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
3.安裝Scala(在master上):
mkdir /application/scala
cp /root/scala-2.11.7.tgz /application/scala/
cd /application/scala/
tar -zxvf scala-2.11.7.tgz
創建軟鏈接:
ln -s /application/scala/scala-2.11.7 /application/scala/scala
修改環境變量,添加SCALA_HOME,并修改PATH即可:
vi /etc/profile.d/java.sh
export SCALA_HOME=/application/scala/scala-2.11.7
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$PATH
使配置立即生效:
source /etc/profile
驗證是否安裝成功
scala –version
顯示如下:
4.將/application/scala從master復制到另外一臺機器slave01上。
scp -r /application/scala root@slave01:/application/
5.將/etc/profile.d/java.sh 也復制到slave01上。
再在slave01上進行以下命令操作,使配置生效:
source /etc/profile
6.安裝Spark(在master上):
mkdir /application/spark
cp /root/spark-1.5.2-bin-hadoop2.6.tgz /application/spark/
tar -zxvf spark-1.5.2-bin-hadoop2.6.tgz
修改環境變量:將SPARK_HOME添加進去,并修改PATH即可。
vi /etc/profile.d/java.sh
export SPARK_HOME=/application/spark/spark-1.5.2-bin-hadoop2.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH
是配置立即生效:
source /etc/profile
7.修改配置文件
7.1修改spark-env.sh配置文件:
cd /application/spark/spark-1.5.2-bin-hadoop2.6/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在后面追加
###jdk direxport JAVA_HOME=/usr/local/jdk
scala dir
export SCALA_HOME=/application/scala/scala
the ip of master node of spark
export SPARK_MASTER_IP=192.168.10.1
the max memory size of worker
export SPARK_WORKER_MEMORY=512m
hadoop configuration file dir
export HADOOP_CONF_DIR=/application/hadoop/hadoop/etc/hadoop</pre>
7.2修改slaves文件
cp slaves.template slaves
vi slaves
添加如下(可能有默認localhost,將其改成master):
master
slave01
8.將/application/spark以及環境變量的配置文件復制到slave01,并通過source命令將文件立即生效
scp -r /application/spark root@slave01:/application/
scp -r /etc/profile.d/java.sh root@slave01:/etc/profile.d/java.sh
修改所屬組和用戶
chown -R hadoop:hadoop /application/spark
9.到此Spark集群搭建完畢。
10.啟動Spark集群:
啟動Spark之前需要先將hadoop的dfs以及yarn啟動。
/application/spark/spark-1.5.2-bin-hadoop2.6/sbin/start-all.sh
啟動所有服務之后,在命令行輸入jps,顯示如下:
![]()
比hadoop集群啟動時多了Master和worker
輸入如下命令
/application/spark/spark-1.5.2-bin-hadoop2.6/bin/spark-shell.sh
出現scala>時說明成功。
在瀏覽器中輸入192.168.10.1:8080時,會看到如下圖,有兩個Worker
![]()
在瀏覽器中輸入192.168.10.1:4040
出現如圖:
![]()
三、運行實例wordcount實例:
scala>var textcount=sc.textFile("hdfs://master:9000/data/words2").filter(line=>line.contains("haha")).count()
顯示結果如下:
![]()
四、總結:
安裝spark比較容易,沒有hadoop復雜,我在安裝spark的過程中,在啟動的時候,啟動不起來,特別慢,半天啟不了,后來就感覺是虛擬機內存分配過低,== 因為我在spark的配置中只給了256m,后來將虛擬機的內存調至1024m,并將spark配置文件中SPARK_WORKER_MEMORY的字段分配512m,spark才能正常啟動。
在啟動的過程中,也出現一個問題,就是jdk版本的問題,我之前安裝hadoop的時候用的是jdk1.6版本,導致在spark啟動時出現錯誤,spark1.5是不兼容jdk1.6的,必須是jdk1.7以上,所以在之后只能重新將jdk刪了重新安裝jdk1.8版本了。