這里默認你的hadoop是已經安裝好的,master是node1,slaver是node2-3,hdfs啟動在node1,yarn啟動在node2,如果沒安裝好hadoop可以看我前面的文章
因為這里是spark和hadoop集成,我已經預先啟動好了hdfs 和 yarn;MapReduce History Server也是需要啟動的,詳情往下看
Spark安裝包:概述
類別
與Hadoop打包在一起的安裝包
• 比如:spark-2.1.0-bin-hadoop2.7.tgz,spark版本為2.1.0,與hadoop 2.7.0集成
獨立安裝包
• spark-2.1.0-bin-without-hadoop.tgz
下載地址
http://spark.apache.org/downloads.html
Spark安裝包:conf目錄
spark-default.conf
可將spark-defaults.conf.template重命名后產生
以key/value方式設置spark應用程序的默認參數,這里寫上默認的參數,就省去了在命令行里寫一堆參數
spark-env.sh
可將spark-env.sh.template重命名后產生
是一個shell文件,保存了spark的運行環境,比如hadoop配置文件所在路徑
Spark安裝部署1:基本配置
解壓縮spark-2.1.0-bin-hadoop2.7.tgz,進入到conf目錄
tar zxvf spark-2.1.0-bin-hadoop2.7.tgz
cd spark-2.1.0-bin-hadoop2.7/conf
主要任務
1、修改conf目錄下的spark-defaults.conf和spark-env.sh
2、配置並啟動spark history server
spark-defaults.conf配置
spark.master=local
#這里表示啟動模式是yarn-client,也可以啟動在yarn-cluster,或者本地模式:local(一般只用在本地測試)
#前兩種最直觀的區別是,你本機關閉后,整個程序關閉,yarn-cluster是,提交后,本機關閉, 程序照樣在跑,詳情看上篇文章
spark-env.sh配置
export HADOOP_CONF_DIR=/home/orco/resources/hadoop-2.7.3/etc/hadoop
#只需要配置這個,其余默認即可
Spark安裝部署2:spark historyserver配置與啟動
找一台節點部署spark history server,比如我用的是node2
在Hadoop配置文件yarn-site.xml增加以下配置
目的:如果需要查看history的日志的話,需要配置下面的參數,對hadoop進行一些修改,主要是修改yarn的一些配置,讓所有的nodemanager可以在應用程序結束之后,把日志傳到hdfs上,這樣的話,即使在應用程序結束之后,還是能夠查看程序的日志
<property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log.server.url</name> <value>http://node2:19888/jobhistory/logs</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
在Hadoop配置文件mapred-site.xml增加以下配置
<property> <name>mapreduce.jobhistory.done-dir</name> <value>/user/history/done</value> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/user/history/done_intermediate</value> </property>
在所有節點上應用同樣的修改,或者分發到所有nodemanager節點,重新啟動Yarn
/home/orco/resources/hadoop-2.7.3/sbin/start-yarn.sh
在node2節點上重新啟動mapreduce history server
sbin/mr-jobhistory-daemon.sh start historyserver
在瀏覽器中打開
http://node2:19888
配置完了必要的hadoop,接下來配置spark
修改conf/spark-defaults.conf ,增加以下配置
#告訴yarn,spark的historyserver地址
spark.yarn.historyServer.address=node1:18080
#剩下幾個是跟sparkhistory相關的一些配置 spark.history.ui.port=18080 spark.eventLog.enabled=true spark.eventLog.dir=hdfs:///tmp/spark/events spark.history.fs.logDirectory=hdfs:///tmp/spark/events
在HDFS上創建以上目錄
hdfs dfs -mkdir -p /tmp/spark/events
啟動Spark history server
sbin/start-history-server.sh
Spark History server地址
http://node1:18080/
注:
spark解壓在了node1,不需要分發到集群中,因為spark on yarn模式,實際運行的時候yarn會將spark的jar分發到各個nm上
這種模式下spark是靠yarn實現集群能力的
只需要啟動Spark history server即可
啟動的時候通過代碼API或者
bin/spark-shell --master yarn-client
或者
bin/spark-shell --master yarn-cluster
來運行程序即可,不需要啟動start-all.sh,start-all.sh是用來部署standalone的腳本的。
下篇文字會介紹上面的配置文件為什么那樣配,即日志那塊的東西