前提
之前安装的hadoop+spark环境对于spark yarn部署下的client方式并不支持,采用cluster方式也会有错误。
当时安装情况明细如下:
10.110.18.216:NameNode、SecondaryNameNode、ResourceManager、spark、hive
10.110.18.217:DataNode、NodeManager、Spark
10.110.18.218:DataNode、NodeManager
安装Hadoop
配置slaves
indata-10-110-18-216
indata-10-110-18-217
indata-10-110-18-218
此时master主机(10.110.18.216)也可以作为nodemanager、datanode节点
配置yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>indata-10-110-18-216</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>
重启应用
在master主机停止所有服务
$HADOOP_HOME/sbin/stop-all.sh
将三台机器上的$HADOOP_HOME/hdfs、$HADOOP_HOME/tmp目录删除
rm -rf /data/hadoop-2.6.5/hdfs
rm -rf /data/hadoop-2.6.5/tmp
在master主机格式化namenode
hdfs namenode -format
启动服务
$HADOOP_HOME/sbin/start-all.sh
在各个机器查看进程,master主机进程
jps
29733 SecondaryNameNode
30006 NodeManager
29563 DataNode
29901 ResourceManager
29423 NameNode
32047 Jps
slaves主机进程
jps
27989 NodeManager
27870 DataNode
安装Spark
配置spark-default.xml
注释掉之前配置的配置
#spark.master yarn
#spark.submit.deployMode cluster
增加如下配置
spark.driver.extraLibraryPath /data/hadoop-2.6.5/lib/native:/data/hadoop-2.6.5/lib/native/Linux-amd64-64
spark.eventLog.dir hdfs:///spark2-history/
spark.eventLog.enabled true
spark.executor.extraLibraryPath /data/hadoop-2.6.5/lib/native:/data/hadoop-2.6.5/lib/native/Linux-amd64-64
spark.history.fs.logDirectory hdfs:///spark2-history/
spark.history.provider org.apache.spark.deploy.history.FsHistoryProvider
spark.history.ui.port 18081
spark.yarn.historyServer.address indata-10-110-18-216.indata.com:18081
spark.yarn.queue default
此时会为spark在master主机上创建history服务
在hdfs中创建spark2-history
hdfs dfs -mkdir /spark2-history
启动spark history服务
$SPARK_HOME/sbin/start-history-server.sh
验证spark任务
通过yarn的cluster模式提交任务
./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \\
examples/jars/spark-examples*.jar \
10
通过yarn的client模式提交任务
$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
examples/jars/spark-examples*.jar \
10
查看yarn任务提交情况,浏览器访问http://10.110.18.216:8088

查看历史信息,可以访问http://10.110.18.216:18081
