Ubuntu系统配置HBase集群步骤
在所有节点(Master/RegionServer)上执行以下命令,确保系统包为最新版本:
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget vim ssh
HBase依赖Java运行环境,推荐使用OpenJDK 1.8:
sudo apt install -y openjdk-8-jdk
# 验证Java版本
java -version # 应输出类似"openjdk version "1.8.0_XXX""
选择稳定的HBase版本(如2.4.x),在Master节点上执行:
wget https://archive.apache.org/dist/hbase/2.4.10/hbase-2.4.10-bin.tar.gz
tar -zxvf hbase-2.4.10-bin.tar.gz
sudo mv hbase-2.4.10 /usr/local/hbase
实现Master节点免密访问所有RegionServer,简化集群管理:
# 在Master节点生成SSH密钥(若已有可跳过)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 将公钥分发到所有RegionServer(替换为用户和IP)
ssh-copy-id ubuntu@192.168.1.102
ssh-copy-id ubuntu@192.168.1.103
# 测试免密登录(以RegionServer1为例)
ssh ubuntu@192.168.1.102
在Master节点的~/.bashrc
(或/etc/profile
)中添加HBase环境变量:
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true" # 避免Hadoop类路径冲突
使配置生效:
source ~/.bashrc
hbase-env.sh
编辑$HBASE_HOME/conf/hbase-env.sh
,设置Java路径和ZooKeeper管理方式:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 根据实际Java路径修改
export HBASE_MANAGES_ZK=false # 设为false,使用外部ZooKeeper集群(推荐)
hbase-site.xml
编辑$HBASE_HOME/conf/hbase-site.xml
,设置HBase核心参数(需根据实际环境调整):
<configuration>
<!-- HBase数据存储目录(本地或HDFS) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value> <!-- 若使用本地存储,改为file:///usr/local/hbase/data -->
</property>
<!-- 开启分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper集群地址(逗号分隔) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.1.101,192.168.1.102,192.168.1.103</value> <!-- 替换为ZooKeeper节点IP -->
</property>
<!-- ZooKeeper数据存储目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zk</value>
</property>
</configuration>
regionservers
文件编辑$HBASE_HOME/conf/regionservers
,列出所有RegionServer节点(每行一个IP或主机名):
192.168.1.102
192.168.1.103
将Master节点的HBase目录同步到所有RegionServer节点(确保路径一致):
# 在Master节点执行
scp -r /usr/local/hbase/ ubuntu@192.168.1.102:/usr/local/
scp -r /usr/local/hbase/ ubuntu@192.168.1.103:/usr/local/
# 在RegionServer节点上重复配置环境变量(~/.bashrc)
确保ZooKeeper集群已启动(若未搭建,需先完成ZooKeeper配置):
# 在每个ZooKeeper节点执行
/usr/local/zookeeper/bin/zkServer.sh start
若使用HDFS作为存储,需先启动HDFS:
# 在NameNode节点执行
/usr/local/hadoop/sbin/start-dfs.sh
在Master节点执行以下命令启动HBase:
/usr/local/hbase/bin/start-hbase.sh
jps
,应看到HMaster
进程;在RegionServer节点执行jps
,应看到HRegionServer
进程。http://<Master_IP>:16010
,查看集群状态、节点列表等信息。hbase shell
,输入list
命令查看所有表(初始无表)。$HBASE_HOME/logs
目录下的日志文件(如hmaster.log
、hregionserver.log
),定位具体错误(如端口冲突、路径不存在)。hbase.zookeeper.quorum
配置的IP正确,且ZooKeeper服务已启动(echo stat | nc <ZooKeeper_IP> 2181
可测试连接)。hbase.rootdir
中的NameNode地址和端口与Hadoop配置一致(core-site.xml
中的fs.defaultFS
)。通过以上步骤,即可在Ubuntu系统上完成HBase集群的配置与启动。集群搭建完成后,可使用hbase shell
进行表的创建、数据插入等操作,或通过Phoenix等工具实现SQL访问。