Spark 環境搭建 (hadoop之上)

1、前提是Hadoop環境已經搭建完成,ssh當然也已經配置完成,官網下載軟件包:

scala-2.11.0.tgz

spark-2.1.0-bin-hadoop2.6.tgz

使用了兩臺虛擬機master 和slave01,其中master是Hadoop的namenode節點所在,同時也配置了一個datanode,即:master擔任主機、也擔任一個從機,slave01擔任一個從機,同時擔任secondarynamenode ;

2、安裝scala:

master上操作:

將scala-2.11.0.tgz 解壓:

 # tar xzvf scala-2.11.0.tgz

移動到想要安裝的目錄

# mv scala-2.11.0/ /usr/local/share/

環境配置

#  vi /etc/profile

export SCALA_HOME=/usr/local/share/scala-2.11.0
export PATH=$SCALA_HOME/bin:$PATH

#source /etc/profile

測試scala:


安裝成功!

slave01上操作:

#  scp -r /usr/local/share/scala-2.11.0/          slave01:/usr/local/share/

環境配置

#  vi /etc/profile

export SCALA_HOME=/usr/local/share/scala-2.11.0
export PATH=$SCALA_HOME/bin:$PATH

#source /etc/profile

測試scala:


安裝成功!

3、安裝spark

master上操作:

將spark-2.1.0-bin-hadoop2.6.tgz 解壓

 # tar xzvf spark-2.1.0-bin-hadoop2.6.tgz

我放置的路徑: /usr/local/spark/

配置環境:

#  vi /usr/local/spark/conf/spark-env.sh 

添加(根據自己的實際環境添加):

export SPARK_HOME=/usr/local/spark
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
SPARK_MASTER_HOST=192.168.126.137
#web頁面端口
SPARK_MASTER_WEBUI_PORT=28686
#Spark的local目錄
SPARK_LOCAL_DIRS=/usr/local/spark/tmp/local
#worker目錄
SPARK_WORKER_DIR=/usr/local/spark/tmp/work
#Driver內存大小
SPARK_DRIVER_MEMORY=1G
#Worker的cpu核數
SPARK_WORKER_CORES=2
#worker內存大小
SPARK_WORKER_MEMORY=1g
#Spark的log日誌目錄
SPARK_LOG_DIR=/usr/local/spark/tmp/logs

# vi /usr/local/spark/conf/slaves

添加:

master
slave01

slave01上操作:

用scp 將spark文件放到slave01 上,和master上的配置、位置等都是一樣的。

master上操作:

配置完成,啓動spark:

# cd /usr/local/spark/

# ./sbin/start-all.sh

# jps

出現了master 和worker 進程,則成功~

去Web的UI上瞅瞅:

訪問:http://master:28686  注意:端口是上面自己配置的~

看,果然是有2個worker,


slave01上操作:

# jps

出現了worker 進程,則成功~

至此,spark配置成功~

當然,你也可以在 /etc/profile 中配置export SPARK_HOME= /usr/local/spark 之類的配置,來方便spark的操作。

4、Spark簡單例子測試:

第3步之後,jps發現Spark的master和worker都成功了,但是沒有Hadoop的一系列進程(namendoe、datanode……)

啓動Hadoop

master上操作:

#  /usr/local/hadoop/sbin/start-all.sh

# jps 

結果如下

hadoop@master:/usr/local/spark> jps
14744 DataNode
17218 Jps
14986 ResourceManager
15107 NodeManager
14598 NameNode
15614 SparkSubmit
14146 Worker
14061 Master


slave01上操作:

#jps 

結果如下:

hadoop@slave01:/usr/local/spark> jps
3884 SecondaryNameNode
3766 DataNode
3615 Worker
4155 NodeManager
5370 Jps

現在是Hadoop和Spark 模塊都啓動了,666~

開始運行簡單實例(實例運行只需在master上操作了,slave01只是負責幹活……):

1)向HDFS文件上放個文件:

# ./bin/hdfs dfs -put spda.data input

在HDFS上的文件路徑是這樣的:/user/hadoop/input

spda.data文件內容:

123

456

2)運行 

# /usr/local/spark/bin/spark-shell

進入scala>

加載文件(文件在HDFS上,不是本機喲~~):

# scala> val infile=sc.textFile("/usr/local/spark/tmp/spda.data")

讀取文件第一行:

# scala> infile.first()

結果:

scala> infile.first();

res2: String = 123()


簡單來看,Spark是可以運行了~

行了,任道而重遠,開始學習scala 吧~~~







發佈了36 篇原創文章 · 獲贊 40 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章