由于不久后项目中可能会用到HBase,所以抽空提前做下准备工作。因为是在个人笔记本上,所以只能先从win10上进行单机部署,也遇到了不少坑,现在将部署的过程进行整理记录。
准备工作:
- 官网上https://hadoop.apache.org/releases.html 下载Hadoop,我下载的是hadoop-2.8.5版本
- 官网上https://hbase.apache.org/downloads.html 下载HBase, 我下载的是2.1.1的版本
- 下载JDK 1.8
安装配置步骤:
- 安装JDK,配置环境变量JAVA_HOME、PATH环境变量(具体省略,有的说需要配置CLASSPATH,但感觉没什么影响);
- 解压hadoop,配置环境变量HADOOP_HOME,为hadoop的跟目录,即bin的上一层目录;
- 解压hbase,首先配置conf下的hbase-site.xml,如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///D:/home/hbase/</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>D://home/testuser/zookeeper</value>
</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>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
</property>
</configuration>
4.这时候执行${HBASE_HOME}/}bin/hbase-start.cmd ,会出现一系列的错误,主要就是缺少包导致的.
- commons-logging-1.2.jar
- slf4j-api-1.7.25.jar
- log4j-1.2.15.jar
- slf4j-log4j12-1.7.25.jar
- htrace-core4-4.0.1-incubating.jar (${HADOOP_HOME}/share/common/lib下直接拷贝就行)
- 如果还有其他缺包的,下载下来放到${HBASE_HOME}/lib下即可
在下载依赖jar包时,注意版本,如果拷贝后还报错,有时候可能是jar包版本不对或者版本冲突。
5.再次执行还可能会提示hadoop下找不到winutils.exe
从https://download.csdn.net/download/liuygvip/10039927 下载hadoop-common-2.8.1-bin.zip,解压之后将bin目录下的拷贝到${HADOOP_HOME}/bin下
6.再次启动,会输出一堆日志没有报错,并且不退出,说明已经成功启动了
在浏览器访问 http://localhost:16010/master-status 再次确当是否启动成功
7.以管理员方式打开dos窗口,进入到${HBASE_HOME}/bin,执行 hbase shell 进入到shell窗口
创建测试表 create 'test_table','info'
查看表 list
8.其他
a.HBase 与Hadoop的版本对应关系参见 http://hbase.apache.org/book.html#basic.prerequisites
b.在启动hbase shell时用管理员方式打开DOS窗口,否则可能会出现目录权限的问题
折腾了几个小时,总算是完成了今天的任务,可以创建表、插入数据、删除表了,但是仍然还有很多不明白的需要慢慢探索。目标是能独立部署一个HBase + HDFS+Zookeeper,并且在部署过程中充分理解HBase的工作原理。