Hbase安装

1.HBase基本概览:

(1)下载hbase安装文件,解压文件:hbase-1.0.1.1-bin.tar.gz:

(2)启动hbase(之前需要启动hadoop):

Hbase主目录:/opt/hbase-1.0.1.1

pmpa@namenode:/opt/hbase-1.0.1.1$cd bin

pmpa@namenode:/opt/hbase-1.0.1.1/bin$./start-hbase.sh
namenode: starting zookeeper, logging to /opt/hbase-1.0.1.1/bin/../logs/hbase-pmpa-zookeeper-namenode.out
datanode1: starting zookeeper, logging to /opt/hbase-1.0.1.1/bin/../logs/hbase-pmpa-zookeeper-datanode1.out
datanode2: starting zookeeper, logging to /opt/hbase-1.0.1.1/bin/../logs/hbase-pmpa-zookeeper-datanode2.out
starting master, logging to /opt/hbase-1.0.1.1/logs/hbase-pmpa-master-namenode.out
datanode1: starting regionserver, logging to /opt/hbase-1.0.1.1/bin/../logs/hbase-pmpa-regionserver-datanode1.out
datanode2: starting regionserver, logging to /opt/hbase-1.0.1.1/bin/../logs/hbase-pmpa-regionserver-datanode2.out

(3)启动Hbase Shell:

pmpa@namenode:/opt/hbase-1.0.1.1/bin$hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase-1.0.1.1/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/pmpa/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

(4)查看Hbase状态:

hbase(main):001:0> status
2 servers, 0 dead, 1.0000 average load

(5)创建带有一个列族(colfam1)的表(testtable),并通过list命令来检查这张表是否已经存在:

hbase(main):003:0> create 'testtable', 'colfam1'
0 row(s) in 10.0010 seconds

=> Hbase::Table - testtable


hbase(main):004:0> list 'testtable'
TABLE                                                                                                                              
testtable                                                                                                                          
1 row(s) in 0.2010 seconds

=> ["testtable"]

(6)通过二个不同的行键myrow-1和myrow-2把新增数据添加到两个不同的行中。列族(colfam1)必须添加一个任意的限定符才能形成实际的列,如:colfam1:q1、colfam1:q2、colfam1:q3。

hbase(main):005:0> put 'testtable','myrow-1','colfam1:q1','value-1'
0 row(s) in 0.9320 seconds

hbase(main):006:0> put 'testtable','myrow-2','colfam1:q2','value-2'
0 row(s) in 0.1260 seconds

hbase(main):007:0> put 'testtable','myrow-2','colfam1:q3','value-3'
0 row(s) in 0.0820 seconds

 

(7)打印表里的数据,使用scan命令。如果想要获得单行数据,可以使用get命令。

hbase(main):008:0> scan 'testtable'
ROW                                COLUMN+CELL                                                                                     
 myrow-1                           column=colfam1:q1, timestamp=1445774635733, value=value-1                                       
 myrow-2                           column=colfam1:q2, timestamp=1445774652735, value=value-2                                       
 myrow-2                           column=colfam1:q3, timestamp=1445774658086, value=value-3                                       
2 row(s) in 0.5730 seconds

hbase(main):009:0> get 'testtable','myrow-1'
COLUMN                             CELL                                                                                            
 colfam1:q1                        timestamp=1445774635733, value=value-1                                                          
1 row(s) in 0.2590 seconds

(8)可以使用delete命令删除数据,例如下边例子删除myrow-2行键的q2列。利用scan检查是否数据正确删除。

hbase(main):010:0> delete 'testtable','myrow-2','colfam1:q2'
0 row(s) in 0.1350 seconds

hbase(main):012:0> scan 'testtable'
ROW                                COLUMN+CELL                                                                                     
 myrow-1                           column=colfam1:q1, timestamp=1445774635733, value=value-1                                       
 myrow-2                           column=colfam1:q3, timestamp=1445774658086, value=value-3                                       
2 row(s) in 0.1380 seconds

 

(9)禁用 并删除这个测试表:

hbase(main):013:0> disable 'testtable'
0 row(s) in 2.6470 seconds

hbase(main):014:0> drop 'testtable'
0 row(s) in 1.3320 seconds

hbase(main):015:0> list 'testtable'
TABLE                                                                                                                              
0 row(s) in 0.0300 seconds

=> []

 

(10)退出Hbase Shell

hbase(main):016:0> exit
pmpa@namenode:/opt/hbase-1.0.1.1/bin$

 

2.HBase安装:

1.配置文件conf/hbase-site.xml :

<configuration>
<property>
        <name>hbase.rootdir</name>
        <value>hdfs://namenode:8020/hbase</value>
</property>
<property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
</property>
<property>
        <name>hbase.master</name>
        <value>hdfs://namenode:8020</value>
</property>
<property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/pmpa/zookeeper-3.4.6/tmp</value>
</property>
<property>
        <name>hbase.zookeeper.quorum</name>
        <value>namenode,datanode1,datanode2</value>
</property>
</configuration>

(1)配置完全分布式的运行模式,属性hbase.cluster.distributed设置为true。

(2)hbase.rootdir设置HDFS NameNode的访问地址,将决定HBase的数据会写到哪里。


2.配置region服务器,配置文件conf/regionservers

datanode1
datanode2


3. 分布式HBase依赖于Zookeeper集群。所有节点和客户端都必须能够正常访问,在配置文件conf/hbase-env.sh

中 export HBASE_MANAGES_ZK=true  可以将Zookeeper作为HBase的一部分来进行管理启动(默认值是true)如果是在HBase中管理Zookeeper,可以在Zookeeper安装目录的zoo.cfg中配置,也可以在HBase的安装目录的hbase-site.xml中进行配置。

为了避免混乱,推荐在hbase-site.xml中单独配置zookeeper。如果使用hbase-site.xml首先配置hbase.zookeeper.quorum,可以设置可用服务器列表。另外,hbase.zookeeper.property.dataDir可以设置存储zookeeper元数据的位置,hbase.zookeeper.property.clientPort可以绑定客户端服务器端口。

 

3.HBase配置

1. conf/hbase-env.sh:包括HBase启动时要使用到的环境变量。

2. conf/hbase-site.xml:该文件配置会覆盖HBase的默认设置。

3. 在配置好了之后需要在不能节点间把这些文件进行同步操作。可以使用工具rsync

4. hbase-default.xml和hbase-site.xml:

进程启动后,会先读取hbase-default.xml,然后读取hbase-site.xml文件,hbase-site.xml的内容会覆盖hbase-default.xml的内容。

5. HBase的Java客户端需要在CLASSPATH中指出依赖的JAR文件:

hbase

hadoop-core

zookeeper

log4j

commons-logging

cmmons-lang

6.在实际应用中,可以写shell脚本来在HBase集群的不同节点同步配置文件。Whirr、Puppet 和 Chef(可以了解下这几个工具)

7. hbase的web UI界面:

可以访问master 和 regionserver的UI界面,可以配置master和regionserver的端口(port),这2个变量分别是:

(1)hbase.master.info.port               (默认值是60010)

(2)hbase.regionserver.port               (默认值是60020)

访问时,如果要访问master的UI地址,则访问地址是http:// 主机名(或者IP): master端口  即可。从1.0版本开始,必须要在hbase-site.xml配置master和regionserver的port后才能访问,否则无法访问web UI。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值