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 吧~~~