JAVA_HOME
环境变量;在所有节点执行以下命令安装OpenJDK 8:
sudo apt update
sudo apt install -y openjdk-8-jdk
# 验证安装
java -version # 应输出Java 1.8.x版本信息
在Master节点生成SSH密钥,并分发公钥到所有RegionServer节点:
# 生成密钥(默认保存在~/.ssh/id_rsa)
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
# 分发公钥到RegionServer节点(替换为用户和IP)
ssh-copy-id user@regionserver1_ip
ssh-copy-id user@regionserver2_ip
# 测试免密登录
ssh user@regionserver1_ip # 应无需密码直接登录
ssh user@regionserver2_ip
若需将HBase数据存储在HDFS上,需提前部署Hadoop集群:
# 下载并解压Hadoop(以3.3.6为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
# 配置Hadoop核心文件(core-site.xml、hdfs-site.xml等)
# 启动Hadoop集群
hadoop namenode -format # 格式化NameNode
start-dfs.sh # 启动HDFS
start-yarn.sh # 启动YARN(可选)
在Master节点下载HBase(以2.5.7为例),并解压到指定目录:
# 下载HBase
wget https://dlcdn.apache.org/hbase/2.5.7/hbase-2.5.7-bin.tar.gz
# 解压到/usr/local/
tar -xzvf hbase-2.5.7-bin.tar.gz -C /usr/local/
# 创建软链接(可选,方便后续操作)
ln -s /usr/local/hbase-2.5.7 /usr/local/hbase
# 配置环境变量
echo 'export HBASE_HOME=/usr/local/hbase' >> ~/.bashrc
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> ~/.bashrc
source ~/.bashrc # 使环境变量生效
进入HBase的conf
目录,修改以下配置文件:
hbase-site.xml
(核心配置)<configuration>
<!-- 指定HBase存储路径(若使用HDFS,替换为HDFS地址;若伪分布式,用file://) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode_ip:9000/hbase</value> <!-- 生产环境用HDFS -->
<!-- <value>file:///usr/local/hbase/data</value> --> <!-- 伪分布式测试用 -->
</property>
<!-- 开启分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定ZooKeeper集群地址(逗号分隔) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master_ip,regionserver1_ip,regionserver2_ip</value>
</property>
<!-- ZooKeeper数据目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper/data</value>
</property>
<!-- Region最大文件大小(超过则分裂,默认10GB) -->
<property>
<name>hbase.hregion.max.filesize</name>
<value>20G</value>
</property>
<!-- MemStore刷写阈值(默认128MB,可根据内存调整) -->
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>256M</value>
</property>
</configuration>
hbase-env.sh
(环境配置)# 设置HBase最大堆内存(根据节点内存调整,如Master用8GB,RegionServer用16GB)
export HBASE_HEAPSIZE=16G
# 关闭HBase自带的ZooKeeper(若使用独立集群)
export HBASE_MANAGES_ZK=false
# 配置Master和RegionServer的JVM参数(可选)
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xmx8G -Xms8G"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xmx16G -Xms16G"
regionservers
(RegionServer列表)在conf
目录下创建或修改regionservers
文件,添加所有RegionServer节点的IP或主机名:
regionserver1_ip
regionserver2_ip
在所有RegionServer节点启动ZooKeeper(HBase自带ZooKeeper,若HBASE_MANAGES_ZK=false
则无需此步):
# 进入HBase的zk目录
cd /usr/local/hbase/bin
# 启动ZooKeeper集群(每个节点执行)
./zkServer.sh start
# 验证状态
./zkServer.sh status # 应显示"Mode: leader"或"Mode: follower"
在Master节点执行以下命令启动集群:
# 启动HBase集群
start-hbase.sh
# 验证启动状态(查看Master和RegionServer进程)
jps # 应显示HMaster和HRegionServer进程
status
命令:hbase shell
status # 应显示"Cluster is ONLINE"及Master和RegionServer状态
http://master_ip:16010
应能看到集群概览、RegionServer列表、表信息等。/usr/local/hbase/logs/
目录下的hbase-*-master-*.log
或hbase-*-regionserver-*.log
,定位错误原因(如端口冲突、ZooKeeper连接失败);hbase-site.xml
中的端口配置(如hbase.master.port
、hbase.regionserver.port
),避免与其他服务冲突。hbase-env.sh
中的HBASE_HEAPSIZE
参数,增加Master和RegionServer的堆内存(如从8GB调整为16GB);hbase.hregion.memstore.flush.size
(如从128MB调整为256MB),减少刷写次数,提升写入性能。hbase-site.xml
中的hbase.zookeeper.quorum
参数包含所有RegionServer节点的IP;zkServer.sh status
命令检查ZooKeeper是否正常运行(应显示Leader/Follower状态)。create 'my_table', 'cf', SPLITS => ['1000', '2000', '3000']
);alter 'my_table', {NAME => 'cf', COMPRESSION => 'SNAPPY'}
);hdfs-site.xml
中的dfs.replication
),提升数据可靠性(生产环境建议3副本)。