网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ha.zookeeper.quorum
zzy01:2181,zzy02:2181,zzy03:2181
ha.zookeeper.session-timeout.ms
30000
ms
fs.trash.interval
1440
###### 3、 配置hdfs-site.xml (zzy01,zzy02,zzy03)
vim /opt/hadoop/server/hadoop-3.2.4/etc/hadoop/hdfs-site.xml
* 添加如下配置:
dfs.qjournal.start-segment.timeout.ms 60000
dfs.nameservices mycluster
dfs.ha.namenodes.mycluster zzy01,zzy02
dfs.namenode.rpc-address.mycluster.zzy01 zzy01:8020
dfs.namenode.rpc-address.mycluster.zzy02 zzy02:8020
dfs.namenode.http-address.mycluster.zzy01 zzy01:9870
dfs.namenode.http-address.mycluster.zzy02 zzy02:9870
dfs.namenode.shared.edits.dir qjournal://zzy01:8485;zzy02:8485;zzy03:8485/mycluster
dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods sshfence shell(/bin/true) dfs.permissions.enabled false dfs.support.append true
dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa
dfs.namenode.name.dir /opt/hadoop/data/tmp/name dfs.datanode.data.dir /opt/hadoop/data/tmp/data
dfs.journalnode.edits.dir /opt/hadoop/data/tmp/journal
dfs.ha.automatic-failover.enabled true
dfs.webhdfs.enabled true
dfs.ha.fencing.ssh.connect-timeout 30000 ha.failover-controller.cli-check.rpc-timeout.ms 60000 ```
4、 配置mapred-site.xml
不需要变更
5、 配置yarn-site.xml (zzy01,zzy02,zzy03)
vim /opt/hadoop/server/hadoop-3.2.4/etc/hadoop/yarn-site.xml
- 添加如下配置:
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 开启 RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定 RM 的 cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 指定 RM 的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 分别指定 RM 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>zzy01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>zzy02</value>
</property>
<!--在namenode1上配置rm1,在namenode2上配置rm2,注意:一般都喜欢把配置好的文件远程复制到其它机器上,但这个在YARN的另一个机器上一定要修改 -->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>zzy01:8088</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>zzy01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>zzy01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
<value>zzy01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>zzy02:8088</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>zzy02:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>zzy02:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
<value>zzy02:8031</value>
</property>
<!-- 指定 zk 集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>zzy01:2181,zzy02:2181,zzy03:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<!-- 启用自动恢复 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 制定 resourcemanager 的状态信息存储在 zookeeper 集群上 -->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!-- 白名单
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN
_HOME,HADOOP_MAPRED_HOME</value>
</property> -->
<property>
<name>yarn.log.server.url</name>
<value>http://zzy01: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>
<property>
<name>yarn.application.classpath</name>
<value>/opt/hadoop/server/hadoop-3.2.4/etc/hadoop:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/common/lib/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/common/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/hdfs:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/hdfs/lib/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/hdfs/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/mapreduce/lib/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/mapreduce/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/yarn:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/yarn/lib/*:/opt/hadoop/server/hadoop-3.2.4/share/hadoop/yarn/*</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>6</value>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>0.6</value>
</property>
</configuration>
6、 创建tmp , logs, tmp/下创建name,data,journal目录 (zzy01,zzy02,zzy03)
mkdir /opt/hadoop/data/tmp/name
mkdir /opt/hadoop/data/tmp/data
mkdir /opt/hadoop/data/tmp/journal
三、启动集群(HA)
1、启动zookeeper集群并查看状态 (zzy01,zzy02,zzy03)
# 进入到每个DN节点,启动ZK服务
/opt/zookeeper-3.9.1/bin/zkServer.sh start
# 查看ZK状态
/opt/zookeeper-3.9.1/bin/zkServer.sh status
# 本次我们配置了三个DN节点,会出现一个leader和两个follower。输入jps,会显示启动进程:QuorumPeerMain
2、启动全部机器的 journalnode 服务 (zzy01,zzy02,zzy03)
进入/opt/hadoop/server/hadoop-3.2.4/安装目录下
[root@zzy01 bin]# cd /opt/hadoop/server/hadoop-3.2.4
[root@zzy01 hadoop-3.2.4]# ./sbin/hadoop-daemon.sh start journalnode
starting journalnode, logging to /opt/hadoop/server/hadoop-3.2.4/logs/hadoop-root-journalnode-zzy01.out
[root@zzy02 zookeeper]# cd /opt/hadoop/server/hadoop-3.2.4/
[root@zzy02 hadoop-3.2.4]# ./sbin/hadoop-daemon.sh start journalnode
starting journalnode, logging to /opt/hadoop/server/hadoop-3.2.4/logs/hadoop-root-journalnode-zzy02.out
[root@zzy03 zookeeper]# cd /opt/hadoop/server/hadoop-3.2.4/
[root@zzy03 hadoop-3.2.4]# ./sbin/hadoop-daemon.sh start journalnode
starting journalnode, logging to /opt/hadoop/server/hadoop-3.2.4/logs/hadoop-root-journalnode-zzy03.out
# 输入jps显示启动进程:JournalNode。
![img](https://img-blog.csdnimg.cn/img_convert/b3dff24c54140e1268ab39d4ee2c1d97.png)
![img](https://img-blog.csdnimg.cn/img_convert/7f7facb18cda7b4f32c7a437e104b8bc.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-bmk3IckJ-1715495206814)]
[外链图片转存中...(img-SsUwN2Xv-1715495206814)]
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**