HA模式的搭建

1、集群配置完成

配置步骤详情请见:https://blog.csdn.net/qq_42578036/article/details/108456640

2、时间同步及 zookeeper 配置完成

配置步骤详情请见:https://blog.csdn.net/qq_42578036/article/details/108467085

3、修改core-site.xml文件

fs.defaultFS hdfs://ns
 <!-- 指定hadoop临时目录 -->
 <property>
     <name>hadoop.tmp.dir</name>
     <value>/opt/hadoop/tmp</value>
 </property>
 
 <!-- 指定zookeeper地址 -->
 <property>
     <name>ha.zookeeper.quorum</name>
     <value>hadoop201:2181,hadoop202:2181,hadoop203:2181</value>
 </property>
 
 <!-- 超级用户 -->
 <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
 </property>
 
 <!-- 超级用户组 -->
 <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
 </property>
 
 <property>
    <name>hadoop.native.lib</name>
    <value>false</value>
    <description>Should native hadoop libraries, if present, be used.
    </description>
 </property>

4、修改hdfs-site.xml文件

dfs.replication 3
 <!-- 指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致 -->
 <property>
     <name>dfs.nameservices</name>
     <value>ns</value>
 </property>
 
 <!-- ns下面有两个NameNode,分别是hadoop201,hadoop202 -->
 <property>
     <name>dfs.ha.namenodes.ns</name>
     <value>hadoop201,hadoop202</value>
 </property>

 <property>
     <name>dfs.ha.namenodes.hadoop201</name>
     <value>hadoop201</value>
 </property>
 
 <property>
     <name>dfs.ha.namenodes.hadoop202</name>
     <value>hadoop202</value>
 </property>

 <!-- hadoop201的RPC通信地址 -->
 <property>
     <name>dfs.namenode.rpc-address.ns.hadoop201</name>
     <value>hadoop201:9000</value>
 </property>
 
 <!-- hadoop201的http通信地址 -->
 <property>
     <name>dfs.namenode.http-address.ns.hadoop201</name>
     <value>hadoop201:50070</value>
 </property>
 
 <!-- hadoop202的RPC通信地址 -->
 <property>
     <name>dfs.namenode.rpc-address.ns.hadoop202</name>
     <value>hadoop202:9000</value>
 </property>
 
 <!-- hadoop202的http通信地址 -->
 <property>
     <name>dfs.namenode.http-address.ns.hadoop202</name>
     <value>hadoop202:50070</value>
 </property>
 
 <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
 <property>
     <name>dfs.namenode.shared.edits.dir</name>
     <value>qjournal://hadoop201:8485;hadoop202:8485;hadoop203:8485/ns</value>
 </property>
 
 <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
 <property>
     <name>dfs.journalnode.edits.dir</name>
     <value>/home/zhihua/data/journaldata</value>
 </property>
 
 <!-- 开启NameNode失败自动切换 -->
 <property>
     <name>dfs.ha.automatic-failover.enabled</name>
     <value>true</value>
 </property>
 
 <!-- 配置失败自动切换实现方式 -->
 <property>
     <name>dfs.client.failover.proxy.provider.ns</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>
 
 <!-- 配置sshfence隔离机制超时时间 -->
 <property>
     <name>dfs.ha.fencing.ssh.connect-timeout</name>
     <value>30000</value>
 </property>
 
 <property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
 </property>

5、修改yarn-site.xml文件

yarn.resourcemanager.ha.enabled true
     <!-- 指定RM的集群名 -->
     <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster_id</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>hadoop201</value>
     </property>
     <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop202</value>
     </property>
     <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>hadoop201:8088</value>
     </property>
     <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>hadoop202:8088</value>
     </property>
     
     <!-- 指定zk集群地址 -->
     <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop201:2181,hadoop202:2181,hadoop203:2181</value>
     </property>
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
     </property>

	 <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
     </property>

     <!-- 日志聚集功能使用 -->
     <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
     </property>

     <!-- 日志保留时间设置7天 -->
     <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
     </property>

6、格式化主节点主机

格式化主节点前确保集群处于关闭状态;
如果格式化失败(如下),就先启动JournalNode;

启动JournalNode:(三台主机均要启动)

hadoop-daemons.sh start journalnode
1
7、复制tmp文件夹

格式化成功后,把主节点新生成的tmp文件夹,复制到备用节点

8、启动整个集群

start-all.sh
1
9、启用备用节点主机的resourcemanager

yarn-daemon.sh start resourcemanager
1
10、主节点启动zkfc
(1)先格式化 zkfc

hdfs zkfc -formatZK
1
(2)启动 zkfc

hadoop-daemon.sh start zkfc
1
(3)启动历史服务(可在任意机器启动)

mr-jobhistory-daemon.sh start historyserver
1
11、Hadoop HA 模式搭建成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值