继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spark On Yarn部署

九州编程
关注TA
已关注
手记 475
粉丝 42
获赞 203

本文使用的软件环境同第一篇,另增加了hadoop的环境:

  1. Linux 4.4.0-62-generic #83-Ubuntu x86_64 GNU/Linux

  2. java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

  3. Spark 2.1.0 built for Hadoop 2.7.3

  4. Hadoop 2.7.3

另外扯一句题外话,由于hadoop体系的复杂,我会从最简单的层级来配置,多余的配置项不会列出。
所有机器的jdk、spark、hadoop版本,目录位置都相同。

1 hadoop配置

配置的基础是集群主机到从机的无密码ssh登录,spark需要hdfs和yarn集群同时运行。在官方文档上一句话提及了这一点:

These configs are used to write to HDFS and connect to the YARN ResourceManager.

这是一个坑,很多文章都没有强调hdfs集群配置的重要性。

1.1 hadoop核心配置

这一步主要参考Hadoop集群配置官方文档
进入<HADOOP_DIR>/etc/hadoop/目录,为了让hadoop系列服务能够启动,首先需要修改hadoop-env.sh文件,指定JDK的目录所在。JAVA_HOME这个变量如果在.bashrcexport了,hadoop执行脚本时还是不行的,所以要在hadoop自己的配置文件中指定。无论主从机都需要。
接着修改hadoop的一些核心配置,修改同目录下的core-site.xml文件,指定hdfs的NameNode的位置:

webp


这个配置也是主从机都需要的。


1.2 hdfs集群配置

接着配置hdfs集群,需要修改同目录下的hdfs-site.xml文件,这个主从机有所不同,对于namenode,需要指定namenode存放文件的路径:

webp


对于datanode,需要指定datanode存放文件的路径:

webp


然后需要在各个机器上建立好指定的目录。


修改同目录下的slaves文件,将从机名称一机一行写入。
在主机<HADOOP_DIR>下执行Name Node的初始化及集群的启动脚本:

./bin/hdfs namenode -format
./sbin/start-dfs.sh

需要检验一下hdfs集群是否成功,这里再次说明,不要相信jps的输出,即便jps的输出完备,各种角色都列出了,也不一定说明集群能正常运行了,只有从web控制台看到主从机的信息才算配置正常了。
hdfs的默认web端口在50070,用浏览器访问Name Node的50070端口就可以看到结果:

webp


Live Nodes可以点开看每个slave机器的信息。


1.3 yarn集群配置

修改同目录下的yarn-site.xml文件,设定yarn.resourcemanager.hostname为Resource Manager主机名,主从机都需要:

webp


在主机<HADOOP_DIR>下执行Yarn的启动脚本

./sbin/start-yarn.sh

yarn的web控制台默认端口是8088,访问Resouce Manager所在主机的8088端口就可以看到yarn的集群情况:


webp

2 spark配置

修改<SPARK_DIR>/conf目录下的spark-env.sh文件,将HADOOP_CONF_DIR变量指定到hadoop配置文件目录并导出。

webp


这个配置的修改是所有spark所在主机都要的。
由于之前已经搭建过了独立模式的集群,也为了控制台执行spark命令行时少输入点参数,还需要修改同目录下的spark-defaults.conf文件,将spark.master指定为yarn,同时修改默认的部署方式,将spark.submit.deployMode指定为cluster。这个修改也要应用到所有的spark中:

webp


3 运行

在集群中任意机器上执行以下测试看看结果:

webp


在spark-submit运行过程中,yarn的web控制台Applications界面会进行展示:

webp


点击Tracking UI栏中的链接,就可以看到熟悉的spark作业运行界面,这个界面只有spark作业运行期可以看到。

webp


如果需要中止运行,需要在yarn的web控制台Applications界面通过Application ID一列中的链接进入Application的详情界面,在左上角有个Kill Application按钮:

webp



作者:见丰
链接:https://www.jianshu.com/p/41c7e2e0362c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP