您的位置:首页 > 运维架构 > Shell

Hbase shell基本操作

2017-08-30 10:17 423 查看
1、启动

cd <hbase_home>/bin

$ ./start-hbase.sh

2、启动hbase shell

# find hadoop-hbase dfs files

hadoop fs -ls /hbase

#start shell

hbase shell

#Run a command to verify that cluster is actually running#

list

3、logs配置

Change the default by editing <hbase_home>/conf/hbase-env.sh

export HBASE_LOG_DIR=/new/location/logs

4、后台管理

HBase comes with web based management

http://localhost:60010
5、端口服务

Both Master and Region servers run web server

– Browsing Master will lead you to region servers

– Regions run on port 60030

6、基本命令

Quote all names

Table and column names

– Single quotes for text

• hbase> get 't1', 'myRowId'

– Double quotes for binary

• Use hexadecimal representation of that binary value

• hbase> get 't1', "key\x03\x3f\xcd"

Display cluster's status via status command

– hbase> status

– hbase> status 'detailed'

• Similar information can be found on HBase

Web Management Console

http://localhost:60010
7、建表

Create Table

Create table called 'Blog' with the following

schema

– 2 families

–'info' with 3 columns: 'title', 'author', and 'date'

–'content' with 1 column family: 'post'

首先建立表,附带列族columns families

create 'Blog', {NAME=>'info'}, {NAME=>'content'}

然后,添加数据,注意hbase是基于rowkey的列数据库,可以一次添加一列或多列,必须每次添加指定rowkey

使用Put命令:

hbase> put 'table', 'row_id', 'family:column', 'value'

例子:

put 'Blog', 'Michelle-001', 'info:title', 'Michelle'

put 'Blog', 'Matt-001', 'info:author', 'Matt123'

put 'Blog', 'Matt-001', 'info:date', '2009.05.01'

put 'Blog', 'Matt-001', 'content:post', 'here is content'

列可以任意的扩展,比如

put 'Blog', 'Matt-001', 'content:news', 'news is new column'

8、查看数据-指定rowid

#查看数据库

count 'Blog'

count 'Blog', {INTERVAL=>2}

#查看行数据

get 'table', 'row_id'

get 'Blog', 'Matt-001'

get 'Blog', 'Matt-001',{COLUMN=>['info:author','content:post']}

#时间戳

get 'Blog', 'Michelle-004',{COLUMN=>['info:author','content:post'],TIMESTAMP=>1326061625690}

#版本

get 'Blog', 'Matt-001',{ VERSIONS=1}

get 'Blog', 'Matt-001',{COLUMN=>'info:date', VERSIONS=1}

get 'Blog', 'Matt-001',{COLUMN=>'info:date', VERSIONS>=2}

get 'Blog', 'Matt-001',{COLUMN=>'info:date'}

9、查看数据-通过scan指定范围,注意,所有的记录均按时间戳作为范围排序

Limit what columns are retrieved

– hbase> scan 'table', {COLUMNS=>['col1', 'col2']}

• Scan a time range

– hbase> scan 'table', {TIMERANGE => [1303, 13036]}

• Limit results with a filter

– hbase> scan 'Blog', {FILTER =>org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}

– More about filters later

scan 'Blog', {COLUMNS=>'info:title'}

开始于John,结束并排除Matt的

scan 'Blog', {COLUMNS=>'info:title',STARTROW=>'John', STOPROW=>'Matt'}

scan 'Blog', {COLUMNS=>'info:title', STOPROW=>'Matt'}

10、版本

put 'Blog', 'Michelle-004', 'info:date', '1990.07.06'

put 'Blog', 'Michelle-004', 'info:date', '1990.07.07'

put 'Blog', 'Michelle-004', 'info:date', '1990.07.08'

put 'Blog', 'Michelle-004', 'info:date', '1990.07.09'

get 'Blog', 'Michelle-004',{COLUMN=>'info:date', VERSIONS=>3}

11、Delete records

delete 'Blog', 'Bob-003', 'info:date'

12、Drop table

– Must disable before dropping

– puts the table “offline” so schema based operations can

be performed

– hbase> disable 'table_name'

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