Hbase的伪分布式模式

摘要
伪分布式模式是在一台主机上运行所有进程的模式。此配置仅仅是协助Hbase用于测试和原型,不要在生产环境中使用此配置,也不要用此配置做HBase的性能比较

启动HDFS
hbase的伪分布式模式下需要用到hdfs,所有我们需要先启动hdfs,可以参考上一篇:Hadoop的伪分布式模式,按照文中的操作,我们可以正确启动hdfs,并且可以使用jps查看进程:

[root@localhost logs]# jps
6096 NodeManager
5860 NameNode
5940 DataNode
7642 Jps
6040 ResourceManager

并且可以通过hadoo fs 查看当前hdfs中的文件:

[root@localhost bin]# hadoop fs -ls /
Found 3 items
drwxr-xr-x   - root supergroup          0 2016-08-19 12:19 /in
drwxr-xr-x   - root supergroup          0 2016-08-19 12:25 /out
drwx------   - root supergroup          0 2016-08-19 12:24 /tmp

以上如果都没有问题的话,说明hdfs已经正常启动

更改hbase配置文件
主要编辑 hbase-site.xml 配置文件:

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:9000/hbase</value>
</property>

Hbase使用HDFS的/hbase目录作为根目录,HDFS的服务端口是本机端口9000

<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>

将 hbase.cluster.distributed 属性值设置为 true, 指定 HBase 运行于分布式模式

启动HBase

[root@localhost logs]# start-hbase.sh 
localhost: starting zookeeper, logging to /root/hbase-1.2.2/bin/../logs/hbase-root-zookeeper-localhost.localdomain.out
starting master, logging to /root/hbase-1.2.2/logs/hbase-root-master-localhost.localdomain.out
starting regionserver, logging to /root/hbase-1.2.2/logs/hbase-root-1-regionserver-localhost.localdomain.out

jps查看进程

[root@localhost logs]# jps
6096 NodeManager
5860 NameNode
8012 HRegionServer
5940 DataNode
7896 HMaster
7838 HQuorumPeer
8266 Jps
6040 ResourceManager

可以看到 HMaster, HRegionServer 以及 HQuorumPeer 进程正在运行

在hdfs中查看hbase目录

[root@localhost bin]# hadoop fs -ls /hbase
Found 7 items
drwxr-xr-x   - root supergroup          0 2016-08-19 14:16 /hbase/.tmp
drwxr-xr-x   - root supergroup          0 2016-08-19 14:17 /hbase/MasterProcWALs
drwxr-xr-x   - root supergroup          0 2016-08-19 14:16 /hbase/WALs
drwxr-xr-x   - root supergroup          0 2016-08-19 14:16 /hbase/data
-rw-r--r--   3 root supergroup         42 2016-08-19 14:16 /hbase/hbase.id
-rw-r--r--   3 root supergroup          7 2016-08-19 14:16 /hbase/hbase.version
drwxr-xr-x   - root supergroup          0 2016-08-19 14:18 /hbase/oldWALs

说明hbase目录已经在hdfs中生成

使用hbase shell连接

[root@localhost logs]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/hbase-1.2.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/root/hadoop-2.5.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.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.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.2, r3f671c1ead70d249ea4598f1bbcc5151322b3a13, Fri Jul  1 08:28:55 CDT 2016

hbase(main):001:0> 

正常连接,常用的命令可以参考:Hbase版本选择和单机模式入门