1. 主机名与IP解析配置(/etc/hosts)
Ubuntu系统需确保/etc/hosts文件中127.0.0.1指向localhost,且集群内各节点的hostname与IP地址正确映射(如192.168.1.101 master)。避免使用127.0.1.1(Ubuntu默认的loopback地址),否则可能导致HBase无法正确识别主机身份,引发通信异常。
2. SSH免密登录配置
主节点(Master)需生成SSH密钥(ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa),并将公钥(id_rsa.pub)分发至所有Region Server节点(ssh-copy-id user@regionserver_ip)。测试主节点到各Region Server的免密登录(ssh user@regionserver_ip),确保集群内节点间无需密码即可远程操作,满足HBase Master管理Region Server的需求。
3. Loopback地址修正
Ubuntu系统默认将loopback接口绑定到127.0.1.1,而HBase要求必须使用127.0.0.1。需修改/etc/hosts文件,将127.0.1.1的映射注释或删除,保留127.0.0.1 localhost,避免因loopback地址不符导致HBase启动失败或功能异常。
4. 网络接口指定(可选)
若节点有多个网络接口(如以太网、无线网卡),需通过hbase.regionserver.dns.interface参数明确指定主接口(如在hbase-site.xml中添加<property><name>hbase.regionserver.dns.interface</name><value>eth0</value></property>),确保HBase使用正确的网络接口获取IP地址,避免因接口混乱导致通信失败。
5. 防火墙与端口开放
关闭Ubuntu防火墙(sudo ufw disable)或放行HBase相关端口(如Master Web UI的16010、RegionServer Web UI的16030、ZooKeeper的2181、RegionServer的16020)。若使用iptables,需添加相应规则(如iptables -A INPUT -p tcp --dport 16010 -j ACCEPT),确保集群内节点及外部客户端能正常访问HBase服务。
6. NTP时间同步配置
HBase集群要求各节点时钟保持一致(允许微小偏差,但大偏差会导致数据不一致或故障)。安装NTP服务(sudo apt install ntp),并编辑/etc/ntp.conf文件,添加可靠的时间服务器(如server 0.ubuntu.pool.ntp.org iburst),启动NTP服务(sudo systemctl start ntp)并设置开机自启(sudo systemctl enable ntp),确保集群内时间同步。
7. HBase配置文件网络参数设置
修改hbase-site.xml文件,配置以下关键网络参数:
hbase.rootdir:指定HBase数据存储路径(如hdfs://namenode:9000/hbase,需与HDFS的fs.defaultFS一致);hbase.cluster.distributed:设置为true(分布式模式);hbase.zookeeper.quorum:列出所有ZooKeeper节点IP(如master,node1,node2);hbase.master.info.bindAddress:Master Web UI绑定的IP地址(如master或具体IP);hbase.regionserver.info.bindAddress:RegionServer Web UI绑定的IP地址(如node1或具体IP)。8. DNS配置(可选)
若集群内主机名解析不稳定,可通过hbase.regionserver.dns.nameserver参数指定自定义DNS服务器(如在hbase-site.xml中添加<property><name>hbase.regionserver.dns.nameserver</name><value>8.8.8.8</value></property>),替代系统默认DNS,提升主机名解析的可靠性。