您的位置:首页 > 其它

Hbase集群安装配置

2017-07-30 22:07 399 查看
一、   Hbase安装

1、解压安装包hbase-1.2.6-bin.tar.gz至路径 /home/hadoop1/Desktop,命令如下:
#cd /home/hadoop1/Desktop
#tar  xfvz   hbase-1.2.6-bin-tar.gz
2、将解压的文件名hbase-1.2.6改为hbase,以方便使用,命令如下:
    # mv  hbase-1.2.6 hbase
3、配置环境变量
将hbase下的bin目录添加到path中,这样,启动hbase就无需到/home/hadoop1/hbase/bin目录下方便了hbase的使用。
    # vim /etc/profile
    Export  HBASE_HOME=/home/hadoop1/Desktop/hbase
    exportPATH=$PATH:/home/hadoop1/Desktop/hbase/bin
    如果已经引入过PATH在export PATH这行追加:/home/hadoop1/Desktop
    执行sourse命令使修改生效:source /etc/profile
4、添加hbase权限
    #chown  -R  hadoop:hadoop1hbase
5、查看HBase版本,确定hbase安装成功,命令如下
    #hbase version
二、hbase配置
1、配置hbase/conf/hbase-env.sh。命令如下:
    #vi hbase/conf/hbase-env.sh
export JAVA_HOME=/home/hadoop1/Desktop/jdk版本
export HBASE_MANAGES_ZK=true
2、配置hbase/conf/hbase-site.xml
配置成如下:
<configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://master:9000/hbase</value>
        </property>
        <property>
           <name>hbase.cluster.distributed</name>
           <value>true</value>
        </property>
<property>
           <name>hbase.zookeeper.quorum</name>
           <value>master,slave1,slave2,slave3</value>
</property>
<property>
          <name>hbase.zookeeper.property.dataDir</name>
          <value>zookeeper</value>
</property>
</configuration>
配置hbase/conf/regionservers,在regionservers文件中添加如下内容:
slave1
slave2
slave3
regionservers文件列出了所有运行hbase的机器(即HRegionServer)。此文件的配置和Hadoop中的slaves文件十分相似,每行指定一台机器的主机名。当HBase启动的时候,会将此文件中列出的所有机器启动。关闭时亦如此。我们的配置意为在slave1, slave2, slave3 上都将启动 RegionServer。
将配置好的 hbase 文件分发给各个 slave
#scp -r hbase hadoop1@slave1:/home/hadoop1/Desktop
#scp -r hbase hadoop1@slave2:/home/hadoop1/Desktop
#scp -r hbase hadoop1@slave3:/home/hadoop1/Desktop
三、接下来测试运行HBase。
第一步:首先登陆ssh,之前设置了无密码登陆,如果已经启动hadoop请跳过此步骤。命令如下:
#start-dfs.sh
第二步:启动HBase.命令如下:
#start-hbase.sh
输入命令jps发现HMaster、HQuorumPeer、HRegionServer都已经启动。Master会有HMaster、HQuorumPeer两个进程。Slave会有HQuorumPeer,HRegionServer两个进程。
进入shell界面:hbase shell
四、Hbase shell 命令
1、通用命令

命令

描述

status

显示服务器状态,例如:5 servers,0 dead,25.000 average load

这里有三个开关,如下:

hbase> status ‘simple’

hbase> status ‘summary’

hbase> status ‘detailed’

whoami

显示hbase当前用户。

hbase> whoami

version

显示hbase版本

list

这个命令将列出hbase已有的表。如下:

list

list ‘stu.*’

count

统计指定表的记录数。如下:

Count ‘tableName’

默认每次显示1000行。这个计数间隔可以任意指定。扫描缓存默认启动计数扫描。默认缓存是10行。如果行规模小,可以增大这个参数。

hbase> count ‘table1’

hbase> count ‘table1’,INTERVAL=>100000

hbase> count ‘table1’,CACHE=>1000

hbase> count ‘table1’,INTERVAL=>10,CACHE=>1000

如果有很多行记录,Hbase默认的计数器会花费很多时间来进行计数。所以,可以用Hbase MapReduce JAR文件来加快这个操作,使用方法如下:

hadoop jar hbase.jar rowcount tablenametocount

describe

这个命令以表名为参数,对表结构信息进行展示,语法如下:

hbase> describe ‘tableName’

exist

如果有成千上万张表,我们需要检查表是否存在于Hbase中,可以使用这个命令。如果表较少,可以很容易用list列出来,如果有很多表,很难通过滚动表的列来找到它,所以可以使用这个命令来找到它,语法如下:hbase> exists ‘tableName’

is_enabled

检查表是否启用。语法如下:

hbase> is_enabled ‘tableName’

 

is_disabled

检查表是否被禁用。语法如下:

hbase> is_disabled ‘tableName’

 

show_filters

显示HBase中的过滤器列表。hbase> show_filters

 

2、数据操作命令

命令
描述
alter
使用这个命令可以改变表和列族的模式。
下面的命令将添加一个列族colFam到表中:
hbase> alter ‘table’,{NAME=>’colFam’,VERSIONS=>1}
从表t1中删除f1列族,使用如下命令:
hbase> alter ‘t1’,NAME=>’fam1’,METHOD=>’delete’
之前的简化版本:
hbase>alter ’t1’, ‘delete’=>’fam1’
也可以更改表的范围属性,如MAX_FILESIZE、MEMSTORE_FLUSHSIZE、READONLY以及DEFERROR_LOG_FLUSH。
例如,为了改变一个列族的最大大小为128MB,使用如下命令:
hbase> alter ‘table’,METHOD=>’table_att’,MAX_FILESIZE=>’12345678’
也可以使用一个命令进行多次变更:
hbase> alter ‘table’,{NAME=>’fam1’},{NAME=’fam2’,METHOD=’delete’}
alter_status
这个可以给出alter命令的状态。
hbase>alter_status ‘tableName’
alter_async
不管alter是否完成,这个命令不等待所有的region获得模式的改变。
hbase> alter_async ‘t1’,NAME=>’f1’,METHOD=>’delete’
disable
为了删除或更改而禁用表。
hbase> disable ‘tableName’
disable_all
这将禁用匹配给定正则表达式的所有表。
hbase> disable_all ‘table*’
drop
删除HBase中的表。在删除表之前必须先禁用。
hbase> disable ‘tableName’
hbase> drop ‘tableName
drop_all
这将删除匹配给定正则表达式的所有表。
hbase> drop_all ‘table*’
enable
在更改之后启用表。
hbase> enable ‘tableName’
enable_all
启用匹配给定正则表达式的所有表。
hbase> enable_all ‘table*’
delete
删除一行中一个单元格的值。
hbase> delete ‘tabl
c685
e’,’row1’,’colFam:name’
这会删除row1中name列的值
Deleteal
删除一个表的完整行或指定列。
deleteall ‘table’,’row1’
这会删除整个row1
deleteall ‘table’,’row1’,’colFam:name’
这也会删除row1中的name列
truncate
这将禁用表、删除表、并重建表模式。所以当drop时,需要手动禁用表,然后再进行删除。如果只是想删除数据而不是删除表模式,可以使用truncate,它会自动删除并重新创建被删除的表模式:
hbase> truncate
3、数据创建命令
命令
描述
create
这个命令用来创建制定模式的新表。
hbase> create ‘tableName’, ’cf1’
这将创建一个列族为cf1的表。然后可以添加数据和动态添加列。
hbase> create ‘tableName’, {NAME=’colFam1’,’NAME=colFam2’,versions=>5}
这将创建一个列族为colFam1、colFam2,有5个版本记录的表。
 
 
4、数据读取命令
命令
描述
scan
这个命令遍历表中的行并显示到标准输出。这将列出表中所有的记录。扫描器可能包括TIMERANGE、FILTER、LIMIT、STARTROW、STOPROW、TIMESTAMP、MAXLENGHT以及COLUMNS。如果没有指定列,所有的列将被扫描。为了扫描一个列族的所有成员,让列修饰符为空。如’col_family:’。
hbase>  scan  ‘.META’
hbase>  scan  ‘.META’, {COLOUMNS=>’info:regioninfo’}
hbase>  scan  ‘t1’,  {COLUMN=>[‘c1’, ‘c2’], LIMIT=>10,STARTROW=>’xyz’}

hbase>  scan  ‘t1’,  {COLUMNS=>’c1’,  TIMERANGE=>[1303668804,1302668904]}

get
通过表明、行、选项、列字典、时间戳、时间范围以及版本获取行或单元格。
hbase> get ‘tableName’, ‘row1’
hbase> get ‘tableName’, ‘row1’, {TIMESTAMP=>[ts1,ts2]}
hbase> get ‘tableName’, ‘row1’, {COLOUMN=>’c1’}
hbase> get ‘tableName’, ‘row1’, {COLOUMN=>[’c1’, ‘c2’, ‘c3’]}
hbase> get ‘tableName’, ‘row1’, {COLOUMN=>’c1’, TIMESTAMP=>ts1}
hbase> get ‘tableName’, ‘row1’, {COLOUMN=>’c1’, TIMESTAMP=>[ts1,ts2],VERSIONS=>4}
hbase> get ‘tableName’, ’row1’, ‘c1’
hbase> get ‘tableName’, ’row1’, ‘c1’, ’c2’
hbase> get ‘tableName’, ’row1’, [ ‘c1’, ‘c2’]
get_counter
这会返回指定表/行/列位置的单元格计数器的值。一个单元格可以通过HBase中原子自增函数来进行管理,并且数据应该是二进制编码。
hbase> get_counter ‘t1’, ‘r1’, ‘c1’
incr
增加指定表/行/列位置单元格的值。为了使得表t1中的r1行c1列中的单元格的值增加1(可忽略)或者10,可以这么做:
hbase> incr ‘t1’, ‘r1’, ‘c1’
hbase> incr ‘t1’, ‘r1’, ‘c1’, 1
hbase> incr ‘t1’, ‘r1’, ‘c1’, 10
5、复杂的管理命令
命令
描述
close_region
关闭一个region。这个关闭操作是没有master参与的(它并不知道关闭操作)。一旦该region是关闭的,它将保持关闭。使用assign可重新打开/分配。使用unassigned或move可分配到集群的其他region上。
hbase> close_region ‘regionName’
hbase> close_region ‘regionName’, ‘REGIONSERVER_IP:PORT’
assign
分配一个region并强制将分配的这个region设置为true。
balance_switch
启用/禁用平衡器并返回到之前平衡器的状态。
Hbase> balance_switch true
Hbase> balance_switch false
balancer
HBase具有一个内置的功能,称为平衡器,一旦启动,默认每5分钟运行一次,它将尝试让指定RegionServer分配的region保持平衡。这将表明HBase上的平衡器是否启用。
compact
压缩指定表的所有region
flush
刷新指定表的所有region到磁盘上。
hbase> flush ‘tableName’
hbase> flush ‘regionName’
major_compact
这个命令将在指定表上进行大合并
move
移除一个region。
hbase> move ‘ENCODE_REGIONNAME’
hbase> move ‘ENCODE_REGIONNAME’, ‘SERVER_NAME’
split
拆分一个表和一个独立的region
unassign
这个命令会取消RegionServer上的分配
hlog_roll
开始写日志到一个新文件。RegionServer的名称应作为参数。
hbase> hlog_roll
list_peers
这会列出集群中所有的复制节点。
hbase > list_peers
 
6、安全命令

命令

描述

grant

这个命令用来授予用户特定的权限。授予权限是零或者来自更多字母序列,RWXCA:R表示读,W表示写,X表示执行,C表示创建,A表示管理。

hbase> grant ‘userName’, ‘RWXCA’

hbase> grant ‘userName’, ‘RWC’, ‘table1’, ‘colFam’ ,’column’

revoke

回退/撤销访问权。

hbase> revoke ‘userName’, ‘table’, ‘colFam’, ‘column’

user_permission

habse> user_permission ‘userName’

7、命名空间

命令

描述

create_namespace

创建命名空间。

hbase> create_namespace ‘tableStugroup’

hbase> ’namespace:table’, ‘colFam’

这将在namespace命名空间中创建列族为colFam的一张表。

drop_namespace

这用于删除命名空间。

hbase> drop_namespace ‘snamespace’

alter_namespace

hbase> alter_namespace ‘snamespace’, {METHOD=>’set’,

‘PROPERTY_NAME’=>‘PROPERTY_VALUE’}

list_namespace_tables

列出命名空间中的表。

hbase> list_namespace_tables ‘namespace’

list_namespace

列出所有的命名空间。

hbase> list_namespace

describe_namespace

描述命名空间

hbase> describe_namespace

 

 
 
 
      
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: