前提准备
hbase version)、Hadoop版本(hadoop version)、Java版本(java -version),确保升级后三者兼容。例如,HBase 2.4.x通常需要Hadoop 2.7.x/3.x和Java 8/11。/hbase、本地/usr/local/hbase/data)和配置文件(hbase-site.xml、hbase-env.sh、regionservers)需完整备份,避免升级丢失。步骤1:卸载旧版HBase
$HBASE_HOME/bin/stop-hbase.sh,确保HMaster、HRegionServer等进程完全停止。sudo rm -rf /usr/local/hbase);sudo rm -rf /etc/hbase、/var/lib/hbase);rm -rf ~/.hbase)。~/.bashrc或/etc/profile,删除HBASE_HOME、PATH中HBase相关行,执行source ~/.bashrc使变更生效。步骤2:下载并安装新版本HBase
wget https://archive.apache.org/dist/hbase/2.4.18/hbase-2.4.18-bin.tar.gz),建议选择.tar.gz格式避免解压问题。tar -zxvf hbase-2.4.18-bin.tar.gz -C /usr/local/
sudo mv /usr/local/hbase-2.4.18 /usr/local/hbase # 统一目录名便于管理
~/.bashrc,添加:export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
执行source ~/.bashrc使环境变量生效。步骤3:配置新版本HBase
hbase-env.sh:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(根据实际Java安装路径调整);export HBASE_MANAGES_ZK=false。hbase-site.xml:根据集群模式调整核心参数:
<configuration>
<property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property>
<property><name>hbase.cluster.distributed</name><value>true</value></property>
<property><name>hbase.zookeeper.property.dataDir</name><value>/tmp/zookeeper</value></property>
</configuration>
hbase.zookeeper.quorum(ZooKeeper节点列表)、hbase.rootdir(HDFS地址)等。regionservers:列出所有RegionServer节点(伪分布写localhost,集群写所有节点主机名)。/usr/local/hbase目录复制到所有RegionServer节点(scp -r /usr/local/hbase hadoop@slave1:/usr/local/),并同步/etc/profile环境变量。步骤4:启动并验证新版本
start-dfs.sh、start-yarn.sh,确保HDFS正常运行。start-hbase.sh,使用jps命令检查进程:应存在HMaster(主节点)、HRegionServer(RegionServer节点)。hbase shell;list(查看表列表)、create 'test', 'cf'(创建表),确认无报错。/usr/local/hbase/logs下的hbase-*-master-*.log、hbase-*-regionserver-*.log,定位问题(如版本冲突、配置错误)。常见问题解决
NoSuchMethodError或ClassNotFoundException,可能是Hadoop与HBase依赖冲突。解决方法:删除HBase lib目录下与Hadoop重复的jar包(如slf4j-log4j12),或重新编译HBase适配Hadoop版本。sudo chown -R $USER:$USER /usr/local/hbase),避免进程无法访问文件。hbase.zookeeper.property.dataDir目录存在且有写入权限;若使用独立ZooKeeper,需提前启动并验证连接。