HBase在Ubuntu上的最佳实践涵盖环境准备、安装配置、性能优化及维护管理等多个环节,以下是具体实践要点:
sudo apt update && sudo apt install openjdk-11-jdk
;/usr/local/hadoop
,配置JAVA_HOME
及核心文件(core-site.xml
、hdfs-site.xml
)。wget
命令获取,解压至/usr/local/
并重命名为hbase
:wget https://downloads.apache.org/hbase/2.4.17/hbase-2.4.17-bin.tar.gz
sudo tar -xzvf hbase-2.4.17-bin.tar.gz -C /usr/local/
sudo mv /usr/local/hbase-2.4.17 /usr/local/hbase
~/.bashrc
,添加HBASE_HOME
及PATH
变量,使HBase命令全局可用:echo 'export HBASE_HOME=/usr/local/hbase' >> ~/.bashrc
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> ~/.bashrc
source ~/.bashrc
hbase-site.xml
(位于$HBASE_HOME/conf
):设置HBase根目录(单机模式用本地路径,如file:///home/username/hbase-data
;集群模式用HDFS路径,如hdfs://localhost:9000/hbase
)、ZooKeeper数据目录及端口:<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/ubuntu/hbase-data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/ubuntu/zookeeper-data</value>
</property>
</configuration>
hbase-env.sh
:配置Java路径及堆内存(建议初始堆内存设为2GB,根据机器资源调整):export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HBASE_HEAPSIZE=2048
start-hbase.sh
启动HBase,通过tail -f $HBASE_HOME/logs/hbase-ubuntu-master-*.log
查看日志确认启动状态(无报错即为成功)。HBASE_HEAPSIZE
):根据数据量设置(如16GB内存可设为8GB),避免过大导致GC停顿;hbase-env.sh
中添加GC参数,启用ParNewGC并设置老年代占用阈值:export HBASE_OPTS="$HBASE_OPTS -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -Xloggc:$HBASE_LOG_DIR/gc-hbase.log"
/etc/security/limits.conf
,增加HBase进程的文件句柄数(nofile
)和线程数(nproc
),避免“打开文件过多”或“无法创建线程”错误:hadoop soft nofile 65535
hadoop hard nofile 65535
hadoop soft nproc 32000
hadoop hard nproc 32000
hdfs-site.xml
中的dfs.datanode.max.xcievers
(设为8192),提升HDFS数据传输效率。hbase-site.xml
中设置hbase.hregion.majorcompaction
为0;hbase.hregion.max.filesize
):根据数据量设置(如128MB,避免Region过小导致频繁split)。$HBASE_HOME/logs/
目录下的日志文件(如hbase-ubuntu-master-*.log
、hbase-ubuntu-regionserver-*.log
),通过grep
命令快速定位错误(如grep -i "error" *.log
)。hbase shell
进行基本功能测试,如创建表、插入数据、扫描表:hbase shell
create 'test_table', 'cf' # 创建表test_table,列族cf
put 'test_table', 'row1', 'cf:name', 'value1' # 插入数据
scan 'test_table' # 扫描表数据
exit # 退出Shell
http://localhost:16010
),确认集群状态为“Active”,查看RegionServer运行情况及表分布。hbase snapshot
命令创建快照),避免数据丢失。update-alternatives --config java
命令切换)。sudo lsof -i :16010
),修改hbase-site.xml
中的端口(如hbase.master.port
)。sudo chown -R ubuntu:ubuntu /usr/local/hbase
)。zkServer.sh start
),并检查hbase-site.xml
中的hbase.zookeeper.quorum
配置(如localhost
)。