1. hbase配置
下载:hbase-1.2.1-bin.tar.gz: http://hbase.apache.org/
[root@node0 ~]#tar xvfz hbase-1.2.1-bin.tar.gz -C /usr/local
改名字:
[root@node0 ~]# mv /usr/local/hbase-1.2.1 /usr/local/hbase
[root@node0 ~]# ln -s /usr/local/ hbase-1.2.1-bin /hbase
2. 修改hbase配置:
[root@node0 ~]# cd /usr/local/hbase/conf
[root@node0 ~]# gedit hbase-env.sh
将内容修改为下面的配置:
export JAVA_HOME=/usr/lib/jvm/java
export HBASE_MANAGES_ZK=true
修改HBASE_MANAGES_ZK为false,默认为true,表示HBase托管zookeeper实例,如果是HBase独占的zookeeper,可以设定为true。
说明注意:
一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。
默认的情况下Hbase会管理一个zookeep集群。这个集群会随着Hbase的启动而启动。当然,
你也可以自己管理一个zookeeper集群,但需要配置Hbase。你需要修改conf/hbase-env.sh
里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.
让Hbase使用一个现有的不被Hbase托管的Zookeep集群,需要设置
conf/hbase-env.sh文件中的HBASE_MANAGES_ZK 属性为 false
3. 修改hbase-site.xml
修改该文件后启动报错,故不作修改
hbase.rootdir:Region Servers共享的HBase持久化数据的存储地址。需要使用包含文件系统scheme的完全限定地址。
hbase.cluster.distributed:指定Hbase集群是否以分布式方式运行。
hbase.master.port:Master绑定的端口,包括backup-master.
hbase.zookeeper.property.dataDir:这个是ZooKeeper配置文件zoo.cfg中的dataDir。zookeeper存储数据库快照的位置。
hbase.zookeeper.quorum:ZooKeeper的所有成员服务器列表,服务器名之间用逗号分隔。
hbase.zookeeper.property.clientPort:这个是ZooKeeper配置文件zoo.cfg中的clientPort。ZooKeeper提供给客户端连接的端口,默认是2181
启动测试:
[root@db96 logs]# /usr/local/hbase/bin/start-hbase.sh
[root@db96 data]# hbase shell
2014-07-22 13:44:29,069 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.96.2-hadoop2, r1581096, Mon Mar 24 16:03:18 PDT 2014
hbase(main):001:0> list
TABLE
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hbase-0.96.2-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop2/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.
0 row(s) in 1.6240 seconds
=> []
hbase(main):002:0> create 'test','fa'
0 row(s) in 0.4500 seconds
=> Hbase::Table - test
hbase(main):003:0> list
TABLE
test
1 row(s) in 0.0520 seconds
=> ["test"]
hbase(main):004:0> put 'test' ,'row1','fa:id','1'
0 row(s) in 0.1400 seconds
hbase(main):005:0> put 'test' ,'row1','fa:name','hello'
0 row(s) in 0.0320 seconds
hbase(main):006:0> scan 'test'
ROW COLUMN+CELL
row1 column=fa:id, timestamp=1406008079789, value=1
row1 column=fa:name, timestamp=1406008102146, value=hello
1 row(s) in 0.0310 seconds
hbase(main):007:0> create 'student','info'
0 row(s) in 0.4360 seconds
=> Hbase::Table - student
hbase(main):008:0> list
TABLE
student
test
2 row(s) in 0.0400 seconds
=> ["student", "test"]
hbase(main):009:0> exit
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29050044/viewspace-2099262/ ,如需转载,请注明出处,否则将追究法律责任。