配置hadoop yarn高可用

前提

  1. 三台服务器分别为hadoop01,hadoop02,hadoop03且已经在hosts中配置
  2. 三台服务器网络连通
  3. 三台服务器都已经安装好jdk和zookeeper

1.配置yarn-site.xml
进入配置文件目录:

cd ./hadoop-3.1.2/etc/hadoop

修改配置文件:

vi yarn-site.xml


<configuration>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!--是否启动yarn的ha-->
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>

<!--yarn的ha的虚拟服务名-->
<property>
    <name>yarn.resoucemanager.cluster-id</name>
    <value>qfyarn</value>
</property>

<!--yarn的ha的虚拟服务名下的具体的rm-->
<property>
    <name>yarn.resoucemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>

<!--指定rm1所启动的主机-->
<property>
    <name>yarn.resoucemanager.hostname.rm1</name>
    <value>hadoop01</value>
</property>

<!--指定rm2所启动的主机-->
<property>
    <name>yarn.resoucemanager.hostname.rm2</name>
    <value>hadoop02</value>
</property>

<!--指定rm1的web ui的通信地址-->
<property>
    <name>yarn.resoucemanager.webapp.address.rm1</name>
    <value>hadoop01:8088</value>
</property>

<!--指定rm2的web ui的通信地址-->
<property>
    <name>yarn.resoucemanager.webapp.address.rm2</name>
    <value>hadoop02:8088</value>
</property>

<!--指定rm2的web ui的通信地址-->
<property>
    <name>yarn.resoucemanager.zk-address</name>
    <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>

</configuration>

2. 配置mapred-site.xml

vi mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <final>true</final>
</property>
</configuration>

3. 在hadoop01上启动yarn

start-yarn.sh

4. 在hadoop02上启动reourcemanager

yarn-daemon.sh start resourcemanager

5. 查看reourcemanager的启动状态
在这里插入图片描述
在这里插入图片描述
6. 测试
创建文本 vi /home/words

hadoop is good
hadoop is nice
hadoop is better

把文件上传到hdfs文件系统

hdfs dfs -put /home/words /

然后执行如下命令计数:

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /words /out/01

会报如下错误:
[2019-10-03 13:44:24.140]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

[2019-10-03 13:44:24.141]Container exited with a non-zero exit code 1. Error file: prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

在这里插入图片描述

查阅资料后发现是要在yarn-site.xml里加入一个配置

首先输入hadoop classpath获取配置:

在这里插入图片描述

vi yarn-site.xml]加入如下配置:

<property>
    <name>yarn.application.classpath</name>
    <value>/home/hadoop/app/hadoop-3.1.2/etc/hadoop:/home/hadoop/app/hadoop-3.1.2/share/hadoop/common/lib/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/common/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/hdfs:/home/hadoop/app/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/hdfs/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/mapreduce/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/yarn:/home/hadoop/app/hadoop-3.1.2/share/hadoop/yarn/lib/*:/home/hadoop/app/hadoop-3.1.2/share/hadoop/yarn/*</value>
</property>

然后重启yarn

stop-yarn.sh

执行如下命令即可:

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /words /out/01

查看输出结果:

hdfs dfs -cat /out/01/part-r-00000

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E5QBgukV-1570083562627)(en-resource://database/2866:0)]

然后杀掉第一台上的resourcemanager
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4X1LeJef-1570083562628)(en-resource://database/2868:0)]

再次执行如下命令:

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /words /out/02

查看结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TiQQkRBz-1570083562629)(en-resource://database/2870:0)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值