debian

Hadoop在Debian上的高可用性配置

小樊
50
2025-09-01 12:29:56
栏目: 智能运维

以下是Hadoop在Debian上配置高可用性的核心步骤,基于搜索资源中的关键信息整理:

一、环境准备

  1. 基础配置

    • 安装JDK 8+:sudo apt install openjdk-8-jdk
    • 配置主机名与IP映射:编辑/etc/hosts,确保节点间可通过主机名访问。
    • 关闭防火墙:sudo ufw disable(生产环境需按需配置)。
  2. 节点规划

    • 至少3个节点:1个主NameNode+1个备用NameNode+1个ZooKeeper节点(可与其他角色共用)。

二、ZooKeeper集群配置

  1. 安装与配置
    • 下载并解压ZooKeeper:wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz,解压至/opt/zookeeper
    • 创建数据目录:mkdir -p /var/lib/zookeeper,在conf/zoo.cfg中配置集群节点(server.1=node1:2888:3888等)。
    • 在每个节点的/var/lib/zookeeper目录下创建myid文件,内容为节点ID(如节点1写1)。
  2. 启动服务
    • 所有节点执行:zkServer.sh start,验证状态:zkServer.sh status

三、HDFS高可用配置

  1. 修改配置文件
    • core-site.xml:设置默认文件系统为HDFS集群名,如<value>hdfs://mycluster</value>,并指定ZooKeeper地址ha.zookeeper.quorum
    • hdfs-site.xml
      • 定义集群名称与服务节点:dfs.nameservices=myclusterdfs.ha.namenodes.mycluster=nn1,nn2
      • 配置主备NameNode的RPC地址:dfs.namenode.rpc-address.mycluster.nn1=node1:8020nn2=node2:8020
      • 启用共享存储(JournalNode):dfs.namenode.shared.edits.dir=qjournal://node1:8485;node2:8485;node3:8485/mycluster
      • 启用自动故障转移:dfs.ha.automatic-failover.enabled=true
  2. 启动JournalNode
    • 在所有节点执行:hdfs --daemon start journalnode

四、YARN高可用配置

  1. 修改配置文件
    • yarn-site.xml
      • 启用ResourceManager高可用:yarn.resourcemanager.ha.enabled=true
      • 配置集群ID与ResourceManager节点:yarn.resourcemanager.cluster-id=rm-clusteryarn.resourcemanager.ha.rm-ids=rm1,rm2
      • 指定主备ResourceManager地址:yarn.resourcemanager.address.rm1=node1:8032rm2=node2:8032
  2. 配置ZKFC(故障转移控制器)
    • 在主备NameNode节点上,将ZKFC配置为系统服务,监控NameNode状态并触发切换。

五、启动与验证

  1. 启动集群
    • 启动顺序:ZooKeeper → JournalNode → NameNode(主→备) → ResourceManager(主→备) → NodeManager。
    • 命令示例:start-dfs.sh(启动HDFS)、start-yarn.sh(启动YARN)。
  2. 测试故障转移
    • 手动停止主NameNode:hdfs --daemon stop namenode,观察备用NameNode是否自动接管。
    • 使用hdfs haadmin -transitionToActive --forcemanual nn1手动切换(测试后需恢复)。

六、监控与优化

关键参考

0
看了该问题的人还看了