sudo apt update && sudo apt upgrade -y
sudo apt install -y openjdk-11-jdk wget tar gzip
验证Java安装:java -version(需显示Java 11及以上版本)。systemd-timesyncd),确保HBase集群各节点时间一致,避免因时间差导致的数据同步问题。/opt目录(便于系统管理):wget https://archive.apache.org/dist/hbase/2.4.9/hbase-2.4.9-bin.tar.gz
sudo tar -xzvf hbase-2.4.9-bin.tar.gz -C /opt
sudo mv /opt/hbase-2.4.9 /opt/hbase
/etc/profile或~/.bashrc,添加HBase环境变量:export HBASE_HOME=/opt/hbase
export PATH=$PATH:$HBASE_HOME/bin
使配置生效:source /etc/profile。hbase-site.xml:核心配置需包含HDFS地址、ZooKeeper信息及集群模式:<configuration>
<property><name>hbase.rootdir</name><value>hdfs://namenode:8020/hbase</value></property>
<property><name>hbase.cluster.distributed</name><value>true</value></property>
<property><name>hbase.zookeeper.quorum</name><value>zookeeper1,zookeeper2,zookeeper3</value></property>
<property><name>hbase.zookeeper.property.dataDir</name><value>/var/lib/zookeeper</value></property>
</configuration>
hbase-env.sh:设置Java路径及禁用HBase管理ZooKeeper(若使用独立ZooKeeper集群):export JAVA_HOME=/usr/lib/jvm/default-java
export HBASE_MANAGES_ZK=false
regionservers:列出所有RegionServer节点的主机名。hrootdir指向HDFS的有效路径(如hdfs://namenode:8020/hbase)。HDFS的高可用性(HA)可提升HBase数据可靠性。hbase.zookeeper.quorum指向ZooKeeper集群地址。ZooKeeper负责HBase的元数据管理及RegionServer协调。Linux系统优化:
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
添加至/etc/rc.local确保重启生效。/etc/security/limits.conf:* soft nofile 65536
* hard nofile 65536
echo vm.swappiness=0 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
noatime减少磁盘I/O:/etc/fstab,在HBase数据目录挂载项添加noatime。HBase配置优化:
hbase-env.sh:export HBASE_REGIONSERVER_HEAPSIZE=8G
调整MemStore与BlockCache比例(读多写少场景建议hbase.regionserver.blockcache.size=0.6-0.8,写多读少建议0.3-0.5)。<property><name>hbase.hregion.max.filesize</name><value>10737418240</value></property> <!-- 10GB -->
调整HFile Block Size(随机读多建议64KB,顺序读多建议128KB):<property><name>hbase.hfile.block.size</name><value>65536</value></property> <!-- 64KB -->
<property><name>hbase.regionserver.wal.async.sync</name><value>true</value></property>
<property><name>hbase.regionserver.wal.enablecompression</name><value>true</value></property>
<property><name>hbase.regionserver.wal.compression</name><value>snappy</value></property>
<property><name>hbase.regionserver.handler.count</name><value>128</value></property>
```。
hbase shell> snapshot 'my_table', 'my_table_snapshot'
hbase org.apache.hadoop.hbase.mapreduce.Export my_table /hdfs/backup/my_table
hbase org.apache.hadoop.hbase.mapreduce.Import my_table /hdfs/backup/my_table
hbase-site.xml中配置hbase.replication相关参数。echo stat | nc zookeeper1 2181),确保hbase.zookeeper.quorum配置正确。若问题仍存在,增加ZooKeeper客户端的最大连接数(hbase.zookeeper.property.maxClientCnxns)。/usr/local/hbase/data)及日志目录(如/usr/local/hbase/logs)的属主为hbase用户,权限设置为777(生产环境建议更严格的权限,如750):sudo chown -R hbase:hbase /usr/local/hbase/data
sudo chmod -R 777 /usr/local/hbase/data
sudo chown -R hbase:hbase /usr/local/hbase/logs
sudo chmod -R 777 /usr/local/hbase/logs
hbase.hregion.memstore.mslab.enabled(减少内存碎片)。