centos

CentOS HDFS高可用配置方法探讨

小樊
42
2025-08-23 02:05:16
栏目: 智能运维

在CentOS上配置HDFS高可用(HA)需通过多个组件协同工作,核心步骤如下:

一、基础环境准备

  1. 节点规划:至少准备3台CentOS服务器(1个Active NameNode、1个Standby NameNode、1个ZooKeeper集群,建议奇数个节点避免脑裂)。
  2. 软件安装:在所有节点安装JDK和Hadoop,配置环境变量。

二、ZooKeeper集群配置

  1. 下载与解压:从Apache官网下载ZooKeeper并解压到指定目录(如/opt/zookeeper)。
  2. 配置参数:编辑zoo.cfg,设置数据目录(dataDir)、客户端端口(clientPort)及集群节点信息(server.X格式,X为节点ID)。
  3. 创建myid文件:在每个节点的dataDir目录下创建myid文件,内容为对应节点ID(如节点1写1)。
  4. 启动服务:在每个节点执行zkServer.sh start启动ZooKeeper。

三、HDFS高可用核心配置

  1. 修改core-site.xml

    • 配置默认文件系统路径:fs.defaultFS=hdfs://myclustermycluster为集群名称)。
    • 指定ZooKeeper集群地址:ha.zookeeper.quorum=node1:2181,node2:2181,node3:2181
  2. 修改hdfs-site.xml

    • 定义集群名称及NameNode角色:dfs.nameservices=myclusterdfs.ha.namenodes.mycluster=nn1,nn2
    • 配置NameNode RPC和HTTP地址:dfs.namenode.rpc-address.mycluster.nn1=node1:8020dfs.namenode.http-address.mycluster.nn1=node1:50070(类似配置nn2)。
    • 指定JournalNode存储路径:dfs.namenode.shared.edits.dir=qjournal://node1:8485;node2:8485;node3:8485/mycluster(需奇数个JournalNode)。
    • 启用自动故障转移:dfs.ha.automatic-failover.enabled=true
    • 配置故障切换策略(如SSH免密):dfs.ha.fencing.methods=sshfence,并指定私钥路径。
  3. 格式化NameNode:在Active NameNode上执行hdfs namenode -format,初始化元数据。

四、启动与验证

  1. 启动服务:按顺序启动ZooKeeper、NameNode(先Active后Standby)、DataNode和JournalNode。
  2. 验证状态
    • 通过hdfs dfsadmin -report查看集群状态,确认NameNode角色。
    • 访问Web界面(如http://node1:50070)检查高可用配置是否生效。
    • 模拟Active NameNode故障(如停止服务),观察Standby是否自动接管。

五、关键注意事项

参考来源

0
看了该问题的人还看了