这里默认你的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的脚本的。
下篇文字会介绍上面的配置文件为什么那样配,即日志那块的东西