开发环境
ubuntu 16.04.4
hadoop-2.9.0
zookeeper-3.4.10
hbase-1.2.6
安装配置
1、本地安装好hadoop-2.9.0和zookeeper-3.4.10
hadoop-2.9.0的core-site.xml配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 用来指定Hadoop运行时产生文件的存放目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.9.0/temp</value>
</property>
</configuration>
fs.defaultFS的属性值将会在配置hbase伪分布式时用到
2、配置/conf/hbase-env.sh
配置JAVA_HOME的路径,以及配置hbase管理zookeeper为false
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export HBASE_MANAGES_ZK=false
3、配置/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<configuration>
配置hbase.cluster.distributed为true,使habse支持分布式集群
配置hbase.rootdir,指定HBase在HDFS上的存储路径,地址和端口要和hadoop配置一样(core-site.xml中的 <name>fs.defaultFS</name>)
3、 启动HBase
完成以上操作后启动HBase,启动顺序:先启动Hadoop–>再启动zookeeper->再启动HBase,关闭顺序:先关闭HBase–>再关闭zookeeper->再关闭Hadoop。zookeeper和Hadoop顺序可调换,zookeeper和Hadoop要在hbase 之前启动。
启动hadoop:
在hadoop目录下,./bin/hdfs namenode -format
./sbin/start-all.sh 或者分两步:./sbin/start-dfs.sh 再 ./sbin/start-yarn.sh
启动zookeeper:
在zookeeper目录下,./bin/zkServer.sh start
启动hbase:
在hbase目录下,./bin/start-hbase.sh
可以用java的jps命令查看HMaster和HRegionServer进程是否启动
4、 进入shell模式
通过./bin/hbase shell进入shell模式,通过list命令查看当前数据库所有表信息,通过create命令创建一个member表,其拥有member_id,address,info三个列族,通过describe命令查看member表结构,通过exit命令退出HBase shell模式。
5、 查看HDFS的HBase数据库文件
在hadoop目录下,通过hadoop fs –ls /hbase命令查看HBase分布式数据库在HDFS上是否成功创建
6、 HBase用户界面:
1) HDFS主页
输入http://{主机名}:9000/dfshealth.jsp 进入HDFS主页,在该主页的utilities标签栏点击“Browse the filesystem”超链接,选择hbase目录,可以查看HBase在HDFS上生成的/hbase目录结构,该目录用于存放Hbase数据
2) Master页面
通过地址http://{主机名}:60010/master.jsp 可以查看HBase的相关信息
http://hbase.apache.org/book.html#_getting_started
quickstart的中文翻译:HBase 参考文档翻译之 Getting Started
额外话:
1、在根据hbase的官网quickstart配置单机模式时出现如下问题:
ERROR: The node /hbase is not in ZooKeeper. It should have been written
by the master. Check the value configured in 'zookeeper.znode.parent'.
There could be a mismatch with the one configured in the master.
此时已经在本地安装了hadoop和zookeeper,但是没有启动两者,HBASE_MANAGES_ZK配置为true,直接用start-hbase.sh启动hbase,然后在使用create命令进行数据库操作时报了这个问题。目前还不知道怎么回事。
2、尝试启动hadoop,zookeeper使用hbase自带的zookeeper
HBASE_MANAGES_ZK配置为true,hbase的hbase-site.xml同伪分布式配置,启动hadoop,然后直接启动hbase
在进入shell模式时报错:ERROR: Can't get master address from ZooKeeper; znode data == null
目前也还不知道怎么回事。有知道原因的博友望不吝告知。