Ubuntu上搭建HBase集群详细步骤
hadoop100、hadoop200、hadoop201),节点间网络互通(可通过ping命令验证)。JAVA_HOME环境变量(如export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64)。hadoop服务正常运行(可通过start-dfs.sh/stop-dfs.sh管理)。zkServer.sh服务正常运行(可通过zkServer.sh status查看状态)。ssh并配置免密登录(避免启动集群时重复输入密码):ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa;cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;authorized_keys到从节点:scp ~/.ssh/authorized_keys hadoop@hadoop200:~/.ssh/、scp ~/.ssh/authorized_keys hadoop@hadoop201:~/.ssh/。在主节点(如hadoop100)下载HBase安装包(选择与Hadoop版本兼容的HBase版本,如Hadoop 3.x对应HBase 2.4.x),解压到/usr/local目录:
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/
mv /usr/local/hbase-2.4.9 /usr/local/hbase # 重命名目录
设置HBASE_HOME环境变量(在/etc/profile中添加):
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
执行source /etc/profile使配置生效。
hbase-env.sh编辑$HBASE_HOME/conf/hbase-env.sh,设置Java路径并关闭HBase自带Zookeeper(使用外部Zookeeper集群):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 根据实际JDK路径修改
export HBASE_MANAGES_ZK=false # 设为false,表示使用外部Zookeeper
若需调整HBase日志或PID目录,可修改HBASE_LOG_DIR、HBASE_PID_DIR参数。
hbase-site.xml编辑$HBASE_HOME/conf/hbase-site.xml,添加以下核心配置(关键参数说明见注释):
<configuration>
<!-- 指定HBase以分布式模式运行 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定HBase在HDFS上的存储路径(需与Hadoop core-site.xml中的fs.defaultFS一致) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop100:9000/hbase</value> # 替换为你的Hadoop NameNode地址
</property>
<!-- 指定Zookeeper集群地址(多个节点用逗号分隔) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop100,hadoop200,hadoop201</value> # 替换为你的Zookeeper节点地址
</property>
<!-- 指定Zookeeper数据存储目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zk</value> # Zookeeper数据目录
</property>
</configuration>
注意:hbase.rootdir需与Hadoop的core-site.xml中fs.defaultFS值一致,hbase.zookeeper.quorum需与Zookeeper的zoo.cfg中server.x值一致。
regionservers编辑$HBASE_HOME/conf/regionservers,添加所有RegionServer节点(负责存储数据的节点):
hadoop100
hadoop200
hadoop201
若需设置备用Master节点(提高集群高可用),可创建backup-masters文件(位于conf目录),添加备用Master节点(如hadoop200)。
将主节点的HBase目录同步到所有从节点(使用scp命令,需提前配置免密登录):
scp -r /usr/local/hbase/ hadoop@hadoop200:/usr/local/
scp -r /usr/local/hbase/ hadoop@hadoop201:/usr/local/
确保从节点的HBASE_HOME环境变量与主节点一致(可通过echo $HBASE_HOME验证)。
HBase依赖Hadoop和Zookeeper,启动顺序必须为:Hadoop → Zookeeper → HBase。
start-dfs.sh(启动HDFS)、start-yarn.sh(启动YARN)。zkServer.sh start(通过zkServer.sh status验证状态,需有1个Leader、2个Follower)。hadoop100)执行start-hbase.sh。jps,若输出包含HMaster(主节点)、HRegionServer(从节点),说明集群启动成功。http://hadoop100:16010(主节点IP:16010),可查看集群状态、Region分布等信息。hbase shell,输入status 'simple',若返回Cluster is ONLINE,说明集群正常运行。netstat -tulnp | grep 端口号查看。/usr/local/hbase)及HDFS存储路径(如/hbase)有正确的读写权限(可使用chown -R hadoop:hadoop /usr/local/hbase修改)。