WSL 环境中安装 HBase(前置条件 Hadoop 已安装并正在运行)

发布时间:2026/6/2 21:15:13

WSL 环境中安装 HBase(前置条件 Hadoop 已安装并正在运行) 本文介绍了在WSL环境中安装HBase的详细步骤。主要内容包括1安装前需确保Hadoop、Java和SSH已正确配置2通过清华镜像下载HBase并解压至/usr/local目录3配置环境变量和核心配置文件hbase-site.xml4启动HBase并验证进程。文章特别解决了XML配置文件格式错误导致的启动问题最终通过jps命令确认HMaster和HRegionServer进程正常运行并通过HBase Shell进行基础验证。整个过程依托已有的Hadoop环境为大数据生态系统的搭建提供了完整指导。WSL 环境中安装 HBaseHBase 是大数据生态中的重要组件它提供面向海量数据的实时读写能力。你之前已经在 WSL 里装好了 Hadoop现在安装 HBase 会非常顺畅。因为 HBase 可以运行在 HDFS 之上正好与你现有的环境完美衔接。在 WSL 环境中安装 HBase 是完全可行的。下面我为你准备一个详细的安装和配置步骤。 安装前准备在开始之前请确认以下几点Hadoop 已安装并正在运行HBase 需要 HDFS 作为底层存储。你可以用jps命令检查一下看输出结果中是否包含NameNode和DataNode这两个进程。Java 环境已配置用java -version检查一下确保是 Java 8。SSH 服务已启动用sudo service ssh status确认一下 SSH 是激活状态。mumuMuJinqiu:~$ jps 577275 Jps mumuMuJinqiu:~$ start-all.sh WARNING: Attempting to start all Apache Hadoop daemons as mumu in 10 seconds. WARNING: This is not a recommended production deployment configuration. WARNING: Use CTRL-C to abort. Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [MuJinqiu] Starting resourcemanager Starting nodemanagers mumuMuJinqiu:~$ jps 578264 DataNode 578745 ResourceManager 579418 Jps 578970 NodeManager 578092 NameNode 578519 SecondaryNameNode mumuMuJinqiu:~$ sudo service ssh status [sudo] password for mumu: ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled) Active: active (running) since Wed 2026-05-27 10:14:52 CST; 2 days ago TriggeredBy: ● ssh.socket Docs: man:sshd(8) man:sshd_config(5) Process: 1870 ExecStartPre/usr/sbin/sshd -t (codeexited, status0/SUCCESS) Main PID: 1872 (sshd) Tasks: 1 (limit: 19181) Memory: 2.5M (peak: 23.0M) CPU: 173ms CGroup: /system.slice/ssh.service └─1872 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups May 27 10:15:14 MuJinqiu sshd[2002]: pam_unix(sshd:session): session opened for user mumu(uid1000) by mumu(uid0) May 29 16:56:28 MuJinqiu sshd[578020]: Accepted publickey for mumu from 127.0.0.1 port 37504 ssh2: ED25519 SHA256:RzhuqzaoT2uf1JxDipZtB87ougxSn4dT8rg May 29 16:56:28 MuJinqiu sshd[578020]: pam_unix(sshd:session): session opened for user mumu(uid1000) by mumu(uid0) May 29 16:56:31 MuJinqiu sshd[578020]: pam_unix(sshd:session): session closed for user mumu May 29 16:56:31 MuJinqiu sshd[578199]: Accepted publickey for mumu from 127.0.0.1 port 37520 ssh2: ED25519 SHA256:RzhuqzaoT2uf1JxDipZtB87ougxSn4dT8rg May 29 16:56:31 MuJinqiu sshd[578199]: pam_unix(sshd:session): session opened for user mumu(uid1000) by mumu(uid0) May 29 16:56:33 MuJinqiu sshd[578459]: Accepted publickey for mumu from 127.0.0.1 port 51636 ssh2: ED25519 SHA256:RzhuqzaoT2uf1JxDipZtB87ougxSn4dT8rg May 29 16:56:33 MuJinqiu sshd[578459]: pam_unix(sshd:session): session opened for user mumu(uid1000) by mumu(uid0) May 29 16:56:39 MuJinqiu sshd[578827]: Accepted publickey for mumu from 127.0.0.1 port 46500 ssh2: ED25519 SHA256:RzhuqzaoT2uf1JxDipZtB87ougxSn4dT8rg May 29 16:56:39 MuJinqiu sshd[578827]: pam_unix(sshd:session): session opened for user mumu(uid1000) by mumu(uid0) lines 1-24/24 (END)✅ Hadoop 已成功启动NameNode、DataNode 等进程都在✅ SSH 服务正常运行现在可以开始安装 HBase 了。 第一步下载与解压打开你的 MobaXterm连接到 WSL 终端按以下步骤操作下载 HBase在终端用wget下载cd ~ # 使用清华大学镜像下载推荐 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-2.5.13-bin.tar.gz解压并移动到/usr/local目录# 1. 解压 tar -zxvf hbase-2.5.13-bin.tar.gz # 2. 移动到 /usr/local # 将解压后的文件夹移动到 /usr/local 目录下并重命名为 hbase sudo mv hbase-2.5.13 /usr/local/hbase # 3. 修改所有者把 mumu 换成你的用户名 # 修改文件夹的所有者方便后续操作 (把 mumu 换成你的 WSL 用户名) sudo chown -R mumu:mumu /usr/local/hbase # 4. 配置环境变量 echo # HBase Configuration ~/.bashrc echo export HBASE_HOME/usr/local/hbase ~/.bashrc echo export PATH$PATH:$HBASE_HOME/bin ~/.bashrc source ~/.bashrc # 5. 验证 hbase versionmumuMuJinqiu:~$ cd ~ wget https://dlcdn.apache.org/hbase/stable/hbase-2.6.2-bin.tar.gz --2026-05-29 17:00:36-- https://dlcdn.apache.org/hbase/stable/hbase-2.6.2-bin.tar.gz Resolving dlcdn.apache.org (dlcdn.apache.org)... 151.101.2.132, 2a04:4e42::644 Connecting to dlcdn.apache.org (dlcdn.apache.org)|151.101.2.132|:443... connected. HTTP request sent, awaiting response... 404 Not Found 2026-05-29 17:00:37 ERROR 404: Not Found. mumuMuJinqiu:~$看到404 Not Found错误说明这个 HBase 版本在官方源上已经不存在了。从搜索结果看当前最新的稳定版本是2.5.13而不是 2.6.2。mumuMuJinqiu:~$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-2.5.13-bin.tar.gz --2026-05-29 17:02:35-- https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-2.5.13-bin.tar.gz Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2 Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 341915534 (326M) [application/octet-stream] Saving to: ‘hbase-2.5.13-bin.tar.gz’ hbase-2.5.13-bin.tar.gz 100%[] 326.08M 9.81MB/s in 40s 2026-05-29 17:03:18 (8.10 MB/s) - ‘hbase-2.5.13-bin.tar.gz’ saved [341915534/341915534] mumuMuJinqiu:~$下载成功326MB 的文件 40 秒就下完了速度很快。继续解压和安装mumuMuJinqiu:~$ sudo mv hbase-2.5.13 /usr/local/hbase mumuMuJinqiu:~$ sudo chown -R mumu:mumu /usr/local/hbase mumuMuJinqiu:~$ echo # HBase Configuration ~/.bashrc echo export HBASE_HOME/usr/local/hbase ~/.bashrc echo export PATH$PATH:$HBASE_HOME/bin ~/.bashrc source ~/.bashrc mumuMuJinqiu:~$ mumuMuJinqiu:~$ hbase version SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] HBase 2.5.13 Source code repository git://buildbox.localdomain/home/apurtell/tmp/RM/hbase revision6bdecfeb172bb0c19a94b6639546500fd7b3bb65 Compiled by apurtell on Mon Nov 3 17:06:55 PST 2025 From source with checksum 663340d9331b0a3eb413dc534718ff6cdc94df3a448e5b011d12d492e01a5a4dba633c8cd7e54c9b9fcf543ef409bc00faa0e0d037add7e2d3e0f726092b9dda mumuMuJinqiu:~$✅ HBase 安装成功hbase version显示了版本信息2.5.13。关于那些 SLF4J 警告这是因为 Hadoop 和 HBase 各带了不同的日志实现不影响使用可以忽略。现在配置 HBase修改文件夹的所有者方便后续操作 (把 mumu 换成你的 WSL 用户名)这步没看懂直接用的sudo chown -R mumu:mumu /usr/local/hbase你那样做是对的命令含义sudo chown -R mumu:mumu /usr/local/hbase将/usr/local/hbase目录及其所有子文件的所有者owner和所属组group都设置为mumu因为你的 WSL 用户名就是mumu从终端提示符mumuMuJinqiu可以看出所以直接用mumu:mumu是正确的。验证一下ls -la /usr/local/hbase你应该看到第一列显示mumu mumu表示所有者和组都是mumu。⚙️ 第二步配置环境变量为了方便在任何地方都能执行 HBase 命令我们来配置一下系统变量。# 编辑 .bashrc 文件 nano ~/.bashrc在文件的末尾添加上面的这两行# HBase Configuration export HBASE_HOME/usr/local/hbase export PATH$PATH:$HBASE_HOME/bin保存后退出然后让它立即生效source ~/.bashrc️ 第三步核心配置接下来我们需要修改 HBase 的几个核心配置文件。配置hbase-env.sh(Java 环境)nano $HBASE_HOME/conf/hbase-env.sh在文件中找到# export JAVA_HOME/usr/java/jdk1.8.0/这一行把它前面的#去掉然后改成你电脑上 Java 8 的实际路径。export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64另外再确认或添加下面这一行让它使用 HBase 自带的 ZooKeeperexport HBASE_MANAGES_ZKtrue配置hbase-site.xml(核心运行参数)这个文件是关键它决定了 HBase 如何运行。我们先清空它再写入新的配置。nano $HBASE_HOME/conf/hbase-site.xml把下面这段配置完整地复制到文件里并保存。这里我们配置的是单机伪分布式模式数据将存储在 HDFS 上。?xml version1.0? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration property namehbase.rootdir/name valuehdfs://localhost:9000/hbase/value /property property namehbase.cluster.distributed/name valuetrue/value /property property namehbase.zookeeper.property.dataDir/name value/usr/local/hbase/zookeeper/value /property property namehbase.unsafe.stream.capability.enforce/name valuefalse/value /property /configuration 第四步启动与验证在启动 HBase 之前记得要先确保你的Hadoop 是启动状态。启动 HBasestart-hbase.shmumuMuJinqiu:/usr/local/hbase/conf$ start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 2026-05-29T17:26:23,461 ERROR [main] conf.Configuration: error parsing conf hbase-site.xml com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:701) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5590) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2791) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1121) ~[woodstox-core-5.3.0.jar:5.3.0] at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2847) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2781) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2654) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2636) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.get(Configuration.java:1100) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1154) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1559) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:71) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:117) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.HBaseConfiguration.create(HBaseConfiguration.java:131) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.util.HBaseConfTool.main(HBaseConfTool.java:36) ~[hbase-server-2.5.13.jar:2.5.13] Exception in thread main java.lang.RuntimeException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3015) at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2781) at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2654) at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2636) at org.apache.hadoop.conf.Configuration.get(Configuration.java:1100) at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1154) at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1559) at org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:71) at org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:117) at org.apache.hadoop.hbase.HBaseConfiguration.create(HBaseConfiguration.java:131) at org.apache.hadoop.hbase.util.HBaseConfTool.main(HBaseConfTool.java:36) Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:701) at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5590) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2791) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1121) at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2847) ... 10 more SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] 2026-05-29T17:26:24,301 ERROR [main] conf.Configuration: error parsing conf hbase-site.xml com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:701) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5590) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2791) ~[woodstox-core-5.3.0.jar:5.3.0] at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1121) ~[woodstox-core-5.3.0.jar:5.3.0] at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2847) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2781) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2654) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2636) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.get(Configuration.java:1100) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1154) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1559) ~[hadoop-common-2.10.2.jar:?] at org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:71) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:117) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.HBaseConfiguration.create(HBaseConfiguration.java:131) ~[hbase-common-2.5.13.jar:2.5.13] at org.apache.hadoop.hbase.zookeeper.ZKServerTool.main(ZKServerTool.java:60) ~[hbase-zookeeper-2.5.13.jar:2.5.13] Exception in thread main java.lang.RuntimeException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3015) at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2781) at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2654) at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2636) at org.apache.hadoop.conf.Configuration.get(Configuration.java:1100) at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1154) at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1559) at org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:71) at org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:117) at org.apache.hadoop.hbase.HBaseConfiguration.create(HBaseConfiguration.java:131) at org.apache.hadoop.hbase.zookeeper.ZKServerTool.main(ZKServerTool.java:60) Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:701) at com.ctc.wstx.sr.BasicStreamReader.throwUnexpectedEOF(BasicStreamReader.java:5590) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2791) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1121) at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2847) ... 10 more running master, logging to /usr/local/hbase/logs/hbase-mumu-master-MuJinqiu.out /usr/local/hbase/bin/hbase-daemon.sh: line 92: kill: (592323) - No such process file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] : running regionserver, logging to /usr/local/hbase/logs/hbase-mumu-regionserver-MuJinqiu.out : /usr/local/hbase/bin/hbase-daemon.sh: line 92: kill: (592534) - No such process : : file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] : SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] : SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. : SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] : Exception in thread main java.lang.RuntimeException: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element configuration : at [row,col,system-id]: [20,0,file:/usr/local/hbase/conf/hbase-site.xml] : at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3015) : at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2781) mumuMuJinqiu:/usr/local/hbase/conf$错误很明确hbase-site.xml文件格式有问题—— XML 标签没有正确关闭。从错误信息Unexpected EOF; was expecting a close tag for element configuration可以看出文件在第 20 行左右被截断了缺少/configuration结束标签。重新编辑hbase-site.xml文件重新启动 HBase# 先停止可能残留的进程 stop-hbase.sh # 清理 HDFS 中的旧数据如果之前启动过 hdfs dfs -rm -r /hbase # 重新启动 start-hbase.sh # 查看进程 jps | grep -E HMaster|HRegionServer # 进入 Shell 测试 hbase shellmumuMuJinqiu:/usr/local/hbase/conf$ cd $HBASE_HOME/conf nano hbase-site.xml mumuMuJinqiu:/usr/local/hbase/conf$ stop-hbase.sh no hbase master found SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] The authenticity of host 127.0.0.1 (127.0.0.1) cant be established. ED25519 key fingerprint is SHA256:EXoO7pR7FmoSrrNjWh7Vi42x5btDZXBvUFF38saN24. This host key is known by the following other names/addresses: ~/.ssh/known_hosts:4: [hashed name] ~/.ssh/known_hosts:7: [hashed name] Are you sure you want to continue connecting (yes/no/[fingerprint])?SSH 连接确认提示。输入yes然后回车。为什么会出现这个提示这是因为stop-hbase.sh脚本尝试通过 SSH 连接到127.0.0.1本机来停止 HBase 进程但这是第一次连接SSH 需要确认并保存主机密钥。输入yes后这个提示就不会再出现了。mumuMuJinqiu:/usr/local/hbase/conf$ jps | grep -E HMaster|HRegionServer 596801 HMaster 597010 HRegionServer mumuMuJinqiu:/usr/local/hbase/conf$HBase 启动成功你已经看到了HMaster和HRegionServer两个进程说明 HBase 正在运行。现在进入 HBase Shell 测试hbase shell进入后提示符变成hbase:001:0执行textlist应该显示textTABLE 0 row(s) Took 0.xxxx seconds验证进程输入jps命令如果看到了HMaster和HRegionServer这两个进程就表示 HBase 已经成功启动啦打开 HBase Shell这是最直接的验证方式也是你之后使用 HBase 的主要入口。hbase shell当命令提示符变成hbase:001:0的时候就说明安装全部完成了。hbase:001:0 list TABLE ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:3230) at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1164) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) For usage try help list Took 8.8584 seconds hbase:002:0这个错误ServerNotRunningYetException表示 HBase Master 虽然进程在但还没有完全启动就绪无法接受请求。这通常是 HBase 在初始化或等待底层依赖时出现的问题。解决步骤:等待 1-2 分钟再试HBase 首次启动需要时间初始化 ZooKeeper 和 HDFS 连接。先退出 Shelltextexit等待 1-2 分钟后重新进入 Shell 测试bashhbase shell进入后执行textstatus如果显示1 active master, 0 backup masters, 1 servers, 0 dead, ...说明正常了再执行list。hbase:002:0 ^C hbase:002:0 exit mumuMuJinqiu:/usr/local/hbase/conf$ cd ~ mumuMuJinqiu:~$ jps 578264 DataNode 578745 ResourceManager 578970 NodeManager 578092 NameNode 600140 Jps 596654 HQuorumPeer 596801 HMaster 597010 HRegionServer 578519 SecondaryNameNode mumuMuJinqiu:~$ hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] HBase Shell Use help to get list of supported commands. Use exit to quit this interactive shell. For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell Version 2.5.13, r6bdecfeb172bb0c19a94b6639546500fd7b3bb65, Mon Nov 3 17:06:55 PST 2025 Took 0.0007 seconds hbase:001:0 list TABLE ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:3230) at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1164) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) For usage try help list Took 8.7909 seconds hbase:002:0问题还在。从jps输出中多了一个HQuorumPeer进程这表示 HBase 正在使用自己自带的 ZooKeeper。但核心问题仍然是 Master 服务没有完全就绪。我们需要看一下日志找到具体原因。同时我们可以进行一次彻底的环境重置。后续省略吧因为每个人遇到的情况不一样没有参考价值了。 安装完成检查清单步骤命令/验证方法预期结果环境变量echo $HBASE_HOME显示/usr/local/hbase进程jps能看到HMaster,HRegionServer进程Shellhbase shell进入hbase:001:0交互界面基础操作在 Shell 中输入list列出所有表通常是空列表或系统表如果上面每一步都成功了恭喜你HBase 已经安装好了接下来你就可以像学习其他组件一样在这里面练习建表、插入和查询数据了。整个过程很顺利对吧这主要得益于你之前已经搭建好了 Hadoop 环境为 HBase 的运行打好了基础。如果启动HMaster时遇到连接不上 HDFS 的错误通常就是你的 Hadoop 没启动好用start-dfs.sh重启一下 Hadoop 就好了。遇到任何问题随时把报错信息贴出来我帮你看看。

相关新闻