前言
在本地开发测试中,单机的 HBase 更便于调试.
一、 准备环境
操作系统: Windows 10
Java: jdk-8u221-windows-x64 | 环境部署不再赘述
Hadoop 与 HBase 版本关系适配表: Hadoop version support matrix
Hadoop: Hadoop-3.1.2 | 环境部署详见 Windows部署Hadoop
HBase: hbase-2.2.0
二、 安装
2.1 解压
解压缩下载的 HBase 二进制文件,个人使用的解压工具为7-Zip.
- 选择安装路径时请注意尽量使用英文和不带空格的路径,防止出现意想不到的问题,同时也推荐所有开发环境的配置都这么做.
2.2 配置环境变量
-
需要配置
HBASE_HOME
、HBASE_MANAGES_ZK
、PATH
-
使用快捷键 windows+r,输入 sysdm.cpl,敲击回车进入。
-
点击高级。
-
选择最底部的环境变量。
-
配置
HBASE_HOME
-
配置
HBASE_MANAGES_ZK
,默认值为 true,使用 HBase 内置的 zookeeper. -
配置
PATH
![PATH][iamge-PATH]
-
执行命令
hadoop version
,如下图所示则成功
![HBASE_VERSION][image-HBASE_VERSION]
-
2.3 配置 HBase 文件
所有的%HBASE_HOME%
请自行替换成自己的 HBase 路径.
-
修改
%HBASE_HOME%\conf\hbase-site.xml
,加入如下文本,建立相应目录.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/%HBASE_HOME%/data/tmp</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>%HBASE_HOME%/data/zookeeper</value>
</property>
<property>
<name>hbase.rest.port</name>
<value>9090</value>
<description>
HBase REST server port.Default is 8080
</description>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
<description>
Controls whether HBase will check for stream capabilities (hflush/hsync).
Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
with the 'file://' scheme, but be mindful of the NOTE below.
WARNING: Setting this to false blinds you to potential data loss and
inconsistent system state in the event of process and/or node failures. If
HBase is complaining of an inability to use hsync or hflush it's most
likely not a false positive.
</description>
</property>
</configuration> -
网上大部分教程还会要求配置 hbase-env.cmd,修改其中的 JAVA_HOME,但是只要系统 Java 环境变量版本配置过并且为 1.8,此步可以省略.
2.4 运行
-
powershell 执行
start-hbase.cmd
即可启动伪分布式集群(启动时产生的窗口请保持开启).
(如提示Could not find or load main class .F
,则需要移除 Visual C++ 2008 redistributable) -
执行
hbase shell
即可打开命令行.可能会提示如下错误,均可忽视.-
java.lang.NoClassDefFoundError | 暂未找到解决方案
1
2
3[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.NoClassDefFoundError: Could not initialize class org.fusesource.jansi.internal.Kernel32
...... -
error reading or parsing ~/.m2/setting.xml | 该错误是因为 maven 仓库的 settings.xml 文件中含有中文.
![m2][image-m2]
-
参考
[iamge-PATH]: https://cdn.superheaoz.top/images/2019/09/23915/PATH.png "“PATH”
[image-HBASE_VERSION]: https://cdn.superheaoz.top/images/2019/09/23915/HBASE_VERSION.png “HBASE_VERSION”
[image-m2]: https://cdn.superheaoz.top/images/2019/09/23915/HBASE_SHELL_M2.png “m2”