HA模式的搭建

1、集群配置完成

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

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

配置步骤详情请见:https://blog.youkuaiyun.com/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 模式搭建成功

Hadoop High Availability (HA) 集群是为了提高Apache Hadoop集群的可靠性和可用性而设计的一种架构。它通过将关键服务(如NameNode和JobTracker)冗余部署,并在主节点故障时自动切换到备用节点,保证了数据处理任务的持续进行。下面是Hadoop HA集群搭建的基本步骤: 1. **安装并配置Hadoop**: - 安装Hadoop到两个或更多节点上,每个节点都是一个独立的Hadoop集群实例。 - 配置`core-site.xml`和`hdfs-site.xml`文件,设置集群的名称节点(NameNode)和数据节点(DataNodes)。 2. **启用HDFS HA**: - 在`hdfs-site.xml`中,设置`ha.fencing.methods`指定节点之间的心跳检测方法,例如SSH或JMX。 - 创建一个HDFS HA配置文件,如`core-site.xml.template`,并在实际集群中创建对应的配置文件。 3. **配置高可用NameNode**: - 设置`ha.zookeeper.quorum`为ZooKeeper集群地址,用于选举新的Active NameNode。 - 配置`dfs.nameservice.id`定义NameNode服务名。 - 在`hdfs-site.xml`中启用`dfs.ha.namenodes.<nameservice-id>`属性。 4. **设置Secondary NameNode**: - 在`hdfs-site.xml`中启用`dfs.ha.automatic-failover.enabled`,并配置`dfs.ha.automatic-failover.retry-interval`和`dfs.ha.automatic-failover.timeout`。 5. **配置ZooKeeper**: - 如果没有使用ZooKeeper,需要配置一个或多个ZooKeeper服务器作为NameNode服务选举的协调器。 6. **启动HDFS服务**: - 启动HDFS集群,包括两个NameNode(一个为主,一个为备)和足够的DataNodes。 7. **验证集群状态**: 使用`hdfs haadmin`命令检查集群状态、启动/关闭心跳检测和手动触发Failover。 8. **配置YARN HA**: 对于YARN资源管理器,类似地,需要配置ResourceManager HA(RMHA),并设置HA模式。 9. **测试和监控**: 确保服务可用,执行负载测试,并设置监控工具(如Hadoop Metrics2或Ganglia)来监控性能和异常。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值