在所有节点执行以下命令,安装必要依赖:
sudo yum install -y java-1.8.0-openjdk-devel wget vim lsof net-tools
java -version # 需输出Java 1.8及以上版本信息
若集群需对接HDFS或依赖ZooKeeper做协调服务,需提前安装:
hdfs-site.xml(设置dfs.replication=3)与core-site.xml(设置fs.defaultFS=hdfs://namenode:9000);zoo.cfg(添加server.1=zookeeper1:2888:3888等server项),并创建myid文件(标识节点ID)。选择稳定版本(如2.4.9/2.5.5),在所有节点执行:
wget https://downloads.apache.org/hbase/2.4.9/hbase-2.4.9-bin.tar.gz
tar -zxvf hbase-2.4.9-bin.tar.gz -C /usr/local/
sudo mv /usr/local/hbase-2.4.9 /usr/local/hbase # 重命名便于管理
编辑/etc/profile文件,添加HBase路径:
echo "export HBASE_HOME=/usr/local/hbase" >> /etc/profile
echo "export PATH=\$HBASE_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile # 使配置生效
进入HBase配置目录(/usr/local/hbase/conf),修改以下文件:
hbase-env.sh设置Java路径与ZooKeeper管理方式(若使用外部ZooKeeper,需关闭HBase自带ZK):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 替换为实际JDK路径
export HBASE_MANAGES_ZK=false # 设为false表示使用外部ZooKeeper
hbase-site.xml配置HBase核心参数(替换namenode、zookeeper1-3为实际主机名/IP):
<configuration>
<!-- HDFS根目录(分布式模式必配) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode:9000/hbase</value>
</property>
<!-- 启用分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper集群地址(逗号分隔) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>zookeeper1,zookeeper2,zookeeper3</value>
</property>
<!-- ZooKeeper数据存储目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property>
<!-- Master节点端口(默认16000) -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!-- RPC超时时间(解决网络延迟问题) -->
<property>
<name>hbase.rpc.timeout</name>
<value>120000</value>
</property>
</configuration>
regionservers文件列出所有RegionServer节点(每行一个主机名):
hadoop001
hadoop002
hadoop003
backup-masters文件(高可用)若需配置Master高可用,在conf目录下创建backup-masters文件,添加备用Master节点(每行一个):
hadoop002
hadoop003
启动ZooKeeper集群:在每台ZooKeeper节点上执行:
cd /usr/local/zookeeper/bin
./zkServer.sh start
使用./zkServer.sh status检查节点状态(Leader/Follower)。
启动Hadoop集群(若使用HDFS):在NameNode节点上执行:
start-dfs.sh # 启动HDFS
start-yarn.sh # 启动YARN(可选)
cd /usr/local/hbase/bin
./start-hbase.sh # 一键启动Master与RegionServer
或分步启动:./start-master.sh # 启动Master
./start-regionserver.sh # 在RegionServer节点上执行(或通过脚本批量启动)
jps,应看到以下进程:HMaster # Master进程
HRegionServer # RegionServer进程(每个RegionServer节点一个)
hbase shell
执行简单命令验证:status 'simple' # 查看集群状态(显示"running"即为正常)
create 'test_table', 'cf1' # 创建测试表
put 'test_table', 'row1', 'cf1:col1', 'value1' # 插入数据
scan 'test_table' # 扫描表数据
exit # 退出Shell
http://master-ip:16010,查看集群概览、Region分布等信息。所有节点需安装NTP服务,确保时间误差≤1s:
sudo yum install -y ntp
sudo systemctl start ntpd
sudo systemctl enable ntpd
开放HBase与ZooKeeper端口(若防火墙开启):
sudo firewall-cmd --permanent --add-port=16000/tcp # Master端口
sudo firewall-cmd --permanent --add-port=16020/tcp # RegionServer端口
sudo firewall-cmd --permanent --add-port=2181/tcp # ZooKeeper端口
sudo firewall-cmd --reload
若启动失败,查看日志定位问题:
tail -f /usr/local/hbase/logs/hbase-*-master-*.log # Master日志
tail -f /usr/local/hbase/logs/hbase-*-regionserver-*.log # RegionServer日志
通过以上步骤,即可在CentOS上完成HBase集群部署。实际生产环境中,还需根据业务需求调整内存分配(如hbase-env.sh中的HBASE_HEAPSIZE)、Region分割策略等参数。