2024年大数据最全Hadoop HA搭建(2),2024年最新阿里P7大牛亲自讲解

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

vim /opt/hadoop/server/hadoop-3.2.4/etc/hadoop/core-site.xml
  • 添加如下配置:
<configuration>
    <!-- 指定 namespace -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
    </property>
    <!-- 指定 zookeeper 地址 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>zzy01:2181,zzy02:2181,zzy03:2181</value>
    </property>
    <!-- hadoop 链接 zookeeper 的超时时长设置 -->
    <property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>30000</value>
        <description>ms</description>
    </property>
    <!-- 启用回收站 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
</configuration>
3、 配置hdfs-site.xml (zzy01,zzy02,zzy03)
vim /opt/hadoop/server/hadoop-3.2.4/etc/hadoop/hdfs-site.xml
  • 添加如下配置:
<configuration>
    <!-- journalnode 集群之间通信的超时时间 -->
    <property>
        <name>dfs.qjournal.start-segment.timeout.ms</name>
        <value>60000</value>
    </property>
    <!--指定 hdfs 的 nameservice 为 mycluster,需要和 core-site.xml 中的保持一致     dfs.ha.namenodes.[nameservice id]为在 nameservice 中的每一个 NameNode 设置唯一标示符。配置一个逗号分隔的NameNode ID列表。这将是被DataNode识别为所有的NameNode。如果使用"mycluster"作为 nameservice ID -->
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <!-- mycluster 下面有两个 NameNode,分别是 zzy01,zzy02 -->
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>zzy01,zzy02</value>
    </property>
    <!-- master 的 RPC 通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.mycluster.zzy01</name>
        <value>zzy01:8020</value>
    </property>
    <!-- zzy02 的 RPC 通信地址 -->
    <property>
        <name>dfs.namenode.rpc-address.mycluster.zzy02</name>
        <value>zzy02:8020</value>
    </property>
    <!-- master 的 http 通信地址 -->
    <property>
        <name>dfs.namenode.http-address.mycluster.zzy01</name>
        <value>zzy01:9870</value>
    </property>
    <!-- zzy02 的 http 通信地址 -->
    <property>
        <name>dfs.namenode.http-address.mycluster.zzy02</name>
        <value>zzy02:9870</value>
    </property>
    <!-- 指定NameNode的edits元数据的共享存储位置。也就是JournalNode列表。该url的配置格式:qjournal://host1:port1;host2:port2;host3:port3/journalId journalId 推荐使用 nameservice,默认端口号是:8485 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://zzy01:8485;zzy02:8485;zzy03:8485/mycluster</value>
    </property>
    <!-- 配置失败自动切换实现方式 -->
    <property>
        <name>dfs.client.failover.proxy.provider.mycluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行 -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>
            sshfence
            shell(/bin/true)
        </value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.support.append</name>
        <value>true</value>
    </property>
    <!-- 使用 sshfence 隔离机制时需要 ssh 免登陆 -->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
    <!-- 指定副本数 -->
    <!-- <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property> -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/data/tmp/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/data/tmp/data</value>
    </property>
    <!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/hadoop/data/tmp/journal</value>
    </property>
    <!-- 开启 NameNode 失败自动切换 -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
    <!-- 启用 webhdfs -->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <!-- 配置 sshfence 隔离机制超时时间 -->
    <property>
        <name>dfs.ha.fencing.ssh.connect-timeout</name>
        <value>30000</value>
    </property>
    <property>
        <name>ha.failover-controller.cli-check.rpc-timeout.ms</name>
        <value>60000</value>
    </property>
</configuration>
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/安装目录下

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[外链图片转存中…(img-AALgmlMW-1715240920844)]
[外链图片转存中…(img-Zdl1MGvc-1715240920845)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值