create schema authorization命令_Hbase命令大全

一:简介

    HBase的名字的来源于Hadoop database,即hadoop数据库,不同于一般的关系数据库,它是非结构化数据存储的数据库,而且它是基于列的而不是基于行的模式。

    HBase是一个分布式的、面向列的、基于Google Bigtable的开源实现,利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。

二:HBase重要概念

HBase的表结构

    HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族/列簇(column family),每个列族/列簇下面可以有多个普通列。

268ac4b72334d3f23072f72fc1e83eb7.png

表Table

    HBase是用表来存储数据的。

命名空间namespace

    namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。
    HBase系统默认定义了两个缺省的namespace:

  • hbase:系统内建表,包含namespace和meta表

  • default:用户建表时未指定namespace的表都创建在此

行键 Row Key

    行键,每一行的主键列,每行的行键要唯一,行键的值为任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在HBase内部,rowKey保存为字节数组byte[]
    行的一次读写是原子操作 (不论一次读写多少列)

区域Region

    Table在行的方向上分割为多个Region。

    Region是按大小分割的,每个表开始只有一个region,随着数据的增多,region不断增大,当增大到一个阀值的时候,region就会等分为两个新的region,之后会有越来越多的region。

    Region是HBase中分布式存储和负载均衡的最小单元。不同的Region分布到不同的RegionServer上。

    Region由一个或者多个Store组成, 每个Store保存一个column family, 每个Store又由一个MemStore(存储在内存中)和0到多个StoreFile(存储在HDFS上)组成。da5f580a64543489ac161cadfa789ecf.png

列族 column family

    列族是每个子列的父级,每个子列都属于一个列族,一个列族包含一个或者多个相关列,创建表的时候需要指定列族,而列不需要必须指定。通过“列族名:列名”来表示某个具体的子列。

    HBase中的Schema就是 TableName + Column Family Name

列限定符

    就是列族下的每个子列名称,或者称为相关列,或者称为限定符,只是翻译不同。
    通过columnFamily:column来定位某个子列。

存储单元 cell

    我们外观看到的每个单元格其实都对应着多个存储单元,默认情况下一个单元格对应着一个存储单元,一个存储单元可以存储一份数据,如果一个单元格有多个存储单元就表示一个单元格可以存储多个值。可以通过version来设置存储单元个数。可以通过rowKey + columnFamily + column + timestamp来唯一确定一个存储单元。cell中的数据是没有类型的,全部是字节码形式存贮。

    hbase按照时间戳降序排列各时间版本,其他映射建按照升序排序。

时间戳版本号 timestamp

    每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

    为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,hbase提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

三:HBase Shell

命名描述语法
help ‘命名名’查看命令的使用描述help ‘命令名’
whoami我是谁whoami
version返回hbase版本信息version
status返回hbase集群的状态信息status
table_help查看如何操作表table_help
create创建表create ‘表名’, ‘列族名1’, ‘列族名2’, ‘列族名N’
alter修改列族添加一个列族:alter ‘表名’, ‘列族名’
删除列族:alter ‘表名’, {NAME=> ‘列族名’, METHOD=> ‘delete’}
describe显示表相关的详细信息describe ‘表名’
list列出hbase中存在的所有表list
exists测试表是否存在exists ‘表名’
put添加或修改的表的值put ‘表名’, ‘行键’, ‘列族名’, ‘列值’
put ‘表名’, ‘行键’, ‘列族名:列名’, ‘列值’
scan通过对表的扫描来获取对用的值scan ‘表名’
扫描某个列族:scan ‘表名’, {COLUMN=>‘列族名’}
扫描某个列族的某个列:scan ‘表名’, {COLUMN=>‘列族名:列名’}
查询同一个列族的多个列:scan ‘表名’, {COLUMNS => [ ‘列族名1:列名1’, ‘列族名1:列名2’, …]}
get获取行或单元(cell)的值get ‘表名’, ‘行键’
get ‘表名’, ‘行键’, ‘列族名’
count统计表中行的数量count ‘表名’
incr增加指定表行或列的值incr ‘表名’, ‘行键’, ‘列族:列名’, 步长值
get_counter获取计数器get_counter ‘表名’, ‘行键’, ‘列族:列名’
delete删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值)删除列族的某个列:delete ‘表名’, ‘行键’, ‘列族名:列名’
deleteall删除指定行的所有元素值deleteall ‘表名’, ‘行键’
truncate重新创建指定表truncate ‘表名’
enable使表有效enable ‘表名’
is_enabled是否启用is_enabled ‘表名’
disable使表无效disable ‘表名’
is_disabled是否无效is_disabled ‘表名’
drop删除表drop的表必须是disable的
disable ‘表名’
drop ‘表名’
shutdown关闭hbase集群(与exit不同)
tools列出hbase所支持的工具
exit退出hbase shell

    HBase Shell 是官方提供的一组命令,用于操作HBase。如果配置了HBase的环境变量了,就可以知己在命令行中输入hbase shell 命令进入命令行。

hbase shell

9085deb52052b2b378be6b44d4fb8e7d.png

help命令

    可以通过 help '命名名称'来查看命令行的具体使用,包括命令的作用和用法。
通过help ‘hbase’ 命名来查看hbase shell 支持的所有命令,hbase将命令进行分组,其中ddl、dml使用较多。7357364d8f81b7094af45f7b265583b5.pngc2b9ac68508d81dc75f44f4bc86522a8.png

四:general 命名

1. 显示集群状态status

    可以为 ‘summary’, ‘simple’, ‘detailed’, or ‘replication’. 默认为 ‘summary’

hbase> statushbase> status 'simple'hbase> status 'summary'hbase> status 'detailed'hbase> status 'replication'hbase> status 'replication', 'source'hbase> status 'replication', 'sink'

e6a9ff448f7f0493d66b7a45c6c79759.png

2. 查询数据库版本version

eee93e1e3a13f13a7ecc7a70121e9f2d.png

3. 显示当前用户与组 whoami

6354336bd2ea29eb2c6bcc3c054df2b0.png

4. 查看操作表的命令table_help

1c6e131808aa2464e8f752b6fc81e879.png

5. 退出HBase Shell exit
exit

五:ddl命令

1. 创建表create

    注意:创建表时只需要指定列族名称,不需要指定列名。

# 语法create '表名', {NAME => '列族名1'}, {NAME => '列族名2'}, {NAME => '列族名3'}# 此种方式是上上面的简写方式,使用上面方式可以为列族指定更多的属性,如VERSIONS、TTL、BLOCKCACHE、CONFIGURATION等属性create '表名', '列族名1', '列族名2', '列族名3'create '表名', {NAME => '列族名1', VERSIONS => 版本号, TTL => 过期时间, BLOCKCACHE => true}# 示例create 'tbl_user', 'info', 'detail'create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}

9c06ab3007fa04889077260cbacb3e14.png

2. 修改(添加、删除)表结构Schema alter

2.1 添加一个列族

# 语法 alter '表名', '列族名'# 示例alter 'tbl_user', 'address'

d0590d74ab5a0d941993d585a7939c04.png

2.2 删除一个列族

# 语法 alter '表名', {NAME=> '列族名', METHOD=> 'delete'}# 示例alter 'tbl_user', {NAME=> 'address', METHOD=> 'delete'}

b99b5d9abf6d991c2e3997b599faa2c7.png
3.3 修改列族的属性
可以修改列族的VERSIONS、IN_MEMORY

# 修改f1列族的版本为5alter 't1', NAME => 'f1', VERSIONS => 5# 修改多个列族,修改f2为内存,版本号为5alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5}# 也可以修改table-scope属性,例如MAX_FILESIZE, READONLY,MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH等。# 例如,修改region的最大大小为128MB:alter 't1', MAX_FILESIZE => '134217728'
3. 异步修改Schema alter_async
# change or add the 'f1' column family in table 't1' from defaultsto instead keep a maximum of 5 cell VERSIONSalter_async 't1', NAME => 'f1', VERSIONS => 5# delete the 'f1' column family in table 'ns1:t1'alter_async 'ns1:t1', NAME => 'f1', METHOD => 'delete'alter_async 'ns1:t1', 'delete' => 'f1'# change the max size of a family to 128MBalter 't1', METHOD => 'table_att', MAX_FILESIZE => '134217728'alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}
4. 获取alter_async执行的状态 alter_status
alter_status '表名'
5. 获取表的描述describe
# 语法 describe '表名'# 示例describe 'tbl_user'

433e5114072e819f6e5546f150b26881.png

6. 列举所有表list

721806665fcf26fb8a122afac3d9d2b7.png

7. 表是否存在exists
# 语法 exists '表名'# 示例exists 'tbl_user'

b844739786d3c8998bd22f92b4d2ed84.png

8. 启用表enable和禁用表disable

通过enable和disable来启用/禁用这个表,相应的可以通过is_enabled和is_disabled来检查表是否被禁用。

# 语法enable '表名'is_enabled '表名'disable '表名'is_disabled '表名'# 示例disable 'tbl_user'is_disabled 'tbl_user'enable 'tbl_user'is_enabled 'tbl_user'

df5d5f57e5a68fc972bca432b95dd7d5.png

9. 禁用满足正则表达式的所有表disable_all
  • .匹配除“\n”和"\r"之外的任何单个字符

  • *匹配前面的子表达式任意次

# 匹配以t开头的表名disable_all 't.*'# 匹配指定命名空间ns下的以t开头的所有表disable_all 'ns:t.*'# 匹配ns命名空间下的所有表disable_all 'ns:.*'
10. 启用满足正则表达式的所有表enable_all
enable_all 't.*'enable_all 'ns:t.*'enable_all 'ns:.*'
11. 删除表drop

需要先禁用表,然后再删除表,启用的表是不允许删除的

# 语法disable '表名'drop '表名'# 示例disable 'tbl_user'drop 'tbl_user'

7774fb50ed4715910e2bf3d90c1ced89.png

12. 删除满足正则表达式的所有表drop_all
drop_all 't.*'drop_all 'ns:t.*'drop_all 'ns:.*'
13. 获取某个表赋值给一个变量 get_table

通过 var = get_table ‘表名’ 赋值给一个变量对象,然后对象.来调用,就像面向对象编程一样,通过对象.方法来调用,这种方式在操作某个表时就不必每次列举表名了。748a1308a3d54b58697df2a73576f75c.png

14. 获取rowKey所在的区 locate_region
locate_region '表名', '行键'

ae40af68d7743ae9c63e2d9205270d62.png

15. 显示hbase所支持的所有过滤器show_filters

    过滤器用于get和scan命令中作为筛选数据的条件,类型关系型数据库中的where的作用72c27d35782aa0fb100144fe5219c67c.png

六:namespace命令

1. 列举命名空间 list_namespace

f17a7a5680e33e126e6232fbfb7569f5.png

2. 获取命名空间描述 describe_namespace

3cc9b290a991596cce29a4d3981ed2c1.png

3. 查看命名空间下的所有表 list_namespace_tables

ce5acd517e1111ca5051a60041fd23ce.png

4. 创建命名空间create_namespace

7e9e93beded58650a4f7e413d58bef5c.png

5. 修改命名空间的属性
# add/modify a propertyalter_namespace 'ns1', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}# delete a propertyalter_namespace 'ns1', {METHOD => 'unset', NAME=>'PROPERTY_NAME'}
6. 删除命名空间drop_namespace
drop_namespace '命名空间名称'

七:dml命令

1. 插入或者修改数据put
# 语法# 当列族中只有一个列时'列族名:列名'使用'列族名'put '表名', '行键', '列族名', '列值'put '表名', '行键', '列族名:列名', '列值'# 示例# 创建表create 'tbl_user', 'info', 'detail', 'address'# 第一行数据put 'tbl_user', 'mengday', 'info:id', '1'put 'tbl_user', 'mengday', 'info:name', '张三'put 'tbl_user', 'mengday', 'info:age', '28'put 'tbl_user', 'mengday', 'detail:birthday', '1990-06-26'put 'tbl_user', 'mengday', 'detail:email', 'abc@163.com'put 'tbl_user', 'mengday', 'detail:create_time', '2019-03-04 14:26:10'put 'tbl_user', 'mengday', 'address', '上海市'# 第二行数据put 'tbl_user', 'vbirdbest', 'info:id', '2'put 'tbl_user', 'vbirdbest', 'info:name', '李四'put 'tbl_user', 'vbirdbest', 'info:age', '27'put 'tbl_user', 'vbirdbest', 'detail:birthday', '1990-06-27'put 'tbl_user', 'vbirdbest', 'detail:email', 'xxx@gmail.com'put 'tbl_user', 'vbirdbest', 'detail:create_time', '2019-03-05 14:26:10'put 'tbl_user', 'vbirdbest', 'address', '北京市'# 第一行数据put 'tbl_user', 'xiaoming', 'info:id', '3'put 'tbl_user', 'xiaoming', 'info:name', '王五'put 'tbl_user', 'xiaoming', 'info:age', '26'put 'tbl_user', 'xiaoming', 'detail:birthday', '1990-06-28'put 'tbl_user', 'xiaoming', 'detail:email', 'xyz@qq.com'put 'tbl_user', 'xiaoming', 'detail:create_time', '2019-03-06 14:26:10'put 'tbl_user', 'xiaoming', 'address', '杭州市'

663fa8f6c9faf6c9787e20ec3a3a5f0e.png

2. 全表扫描scan

获取表的所有数据

# 语法scan '表名'# 示例scan 'tbl_user'

ed3206211edee7f779307791e7c28265.png
注意:中文编码了

扫描整个列簇

# 语法scan '表名', {COLUMN=>'列族名'}# 示例scan 'tbl_user', {COLUMN=>'info'}

36d2f7ec25a226cf117a0ebfbd58bfdd.png

扫描整个列簇的某个列

# 语法scan '表名', {COLUMN=>'列族名:列名'}# 示例scan 'tbl_user', {COLUMN=>'info:age'}

8de2641308340ec8aa580a7aed49477f.png

3. 获取数据get
# 语法get '表名', '行键'# 示例get 'tbl_user', 'mengday'

16e7e004bf4d53e183f8f4e420b5e75a.png
根据某一行某列族的数据

# 语法get '表名', '行键', '列族名'# 示例get 'tbl_user', 'mengday', 'info'

fabb1bd4c30157105985aaca8625cd2b.png

# 创建表,c1版本为4, 元数据mykey=myvaluehbase(main):009:0> create 't1', {NAME => 'c1', VERSIONS => 4}, METADATA => { 'mykey' => 'myvalue' }0 row(s) in 2.2810 seconds=> Hbase::Table - t1# 添加列族c2, c3hbase(main):010:0> alter 't1', 'c2', 'c3'Updating all regions with the new schema...1/1 regions updated.Done.Updating all regions with the new schema...1/1 regions updated.Done.0 row(s) in 3.8320 seconds# 出入数据,c1 插入4个版本的值hbase(main):011:0> put 't1', 'r1', 'c1', 'v1'0 row(s) in 0.1000 secondshbase(main):012:0> put 't1', 'r1', 'c1', 'v11'0 row(s) in 0.0180 secondshbase(main):013:0> put 't1', 'r1', 'c1', 'v111'0 row(s) in 0.0140 secondshbase(main):014:0> put 't1', 'r1', 'c1', 'v1111'0 row(s) in 0.0140 seconds# 插入c2、c3的值hbase(main):015:0> put 't1', 'r1', 'c2', 'v2'0 row(s) in 0.0140 secondshbase(main):016:0> put 't1', 'r1', 'c3', 'v3'0 row(s) in 0.0210 seconds# 获取rowKey=r1的一行记录hbase(main):017:0> get 't1', 'r1'COLUMN                                              CELL c1:                                                timestamp=1552819382575, value=v1111 c2:                                                timestamp=1552819392398, value=v2 c3:                                                timestamp=1552819398244, value=v33 row(s) in 0.0550 seconds# 获取rowKey=r1并且 1552819392398 <= 时间戳范围 < 1552819398244hbase(main):018:0> get 't1', 'r1', {TIMERANGE => [1552819392398, 1552819398244]}COLUMN                                              CELL c2:                                                timestamp=1552819392398, value=v21 row(s) in 0.0090 seconds# 获取指定列的值hbase(main):019:0> get 't1', 'r1', {COLUMN => 'c1'}COLUMN                                              CELL c1:                                                timestamp=1552819382575, value=v11111 row(s) in 0.0160 seconds# 获取指定列的值,多个值使用数组表示hbase(main):020:0> get 't1', 'r1', {COLUMN => ['c1', 'c2', 'c3']}COLUMN                                              CELL c1:                                                timestamp=1552819382575, value=v1111 c2:                                                timestamp=1552819392398, value=v2 c3:                                                timestamp=1552819398244, value=v33 row(s) in 0.0170 seconds# 获取c1的值,获取4个版本的值,默认是按照时间戳降续排序的hbase(main):021:0> get 't1', 'r1', {COLUMN => 'c1', VERSIONS => 4}COLUMN                                              CELL c1:                                                timestamp=1552819382575, value=v1111 c1:                                                timestamp=1552819376343, value=v111 c1:                                                timestamp=1552819368993, value=v11 c1:                                                timestamp=1552819362975, value=v14 row(s) in 0.0180 seconds# 获取c1的3个版本值hbase(main):027:0* get 't1', 'r1', {COLUMN => 'c1', VERSIONS => 3}COLUMN                                               CELL c1:                                                 timestamp=1552819382575, value=v1111 c1:                                                 timestamp=1552819376343, value=v111 c1:                                                 timestamp=1552819368993, value=v113 row(s) in 0.0090 seconds# 获取指定时间戳版本的列hbase(main):022:0> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => 1552819376343}COLUMN                                              CELL c1:                                                timestamp=1552819376343, value=v1111 row(s) in 0.0170 secondshbase(main):023:0> get 't1', 'r1', {COLUMN => 'c1', TIMESTAMP => 1552819376343, VERSIONS => 4}COLUMN                                              CELL c1:                                                timestamp=1552819376343, value=v1111 row(s) in 0.0130 seconds# 获取rowKey=r1中的值等于v2的所有列hbase(main):024:0> get 't1', 'r1', {FILTER => "ValueFilter(=, 'binary:v2')"}COLUMN                                              CELL c2:                                                timestamp=1552819392398, value=v21 row(s) in 0.0510 secondshbase(main):025:0> get 't1', 'r1', {COLUMN => 'c1', ATTRIBUTES => {'mykey'=>'myvalue'}}COLUMN                                              CELL c1:                                                timestamp=1552819382575, value=v1111
4. 删除某个列族中的某个列delete
# 语法delete '表名', '行键', '列族名:列名'create 'tbl_test', 'columnFamily1'put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value1'put 'tbl_test', 'rowKey1', 'columnFamily1:column2', 'value2'delete 'tbl_test', 'rowKey1', 'columnFamily1:column1'

af5c7daec278cc7d577c6b4c763a1d30.png

5. 删除某行数据deleteall
# 语法deleteall '表名', '行键'# 示例deleteall 'tbl_test', 'rowKey1'

e24cf583f0460891b588074dfa887e71.png

6. 清空整个表的数据truncate

先disable表,然后再drop表,最后重新create表

truncate '表名'

330f6ee279565e720c6aa0f9f016b9ae.png

7. 查询表中有多少行count
# 语法count '表名'# 示例count 'tbl_user'

fa81a714741148da18cfd0ffd467dc45.png

8. 自增incr
# 语法incr '表名', '行键', '列族:列名', 步长值# 示例 # 注意:incr 可以对不存的行键操作,如果行键已经存在会报错,如果使用put修改了incr的值再使用incr也会报错# ERROR: org.apache.hadoop.hbase.DoNotRetryIOException: Field is not a long, it's 2 bytes wideincr 'tbl_user', 'xiaohong', 'info:age', 1

bd5be6160118d2c50f7df3c9021b7852.png

9. 计数器get_counter
# 点击量:日、周、月create 'counters', 'daily', 'weekly', 'monthly'incr 'counters', '20110101', 'daily:hits', 1incr 'counters', '20110101', 'daily:hits', 1get_counter 'counters', '20110101', 'daily:hits'

6a6101cb5e11a09ac48bababe6ceaab3.png

10. 修饰词
10.1 COLUMNS: 查询同一个列族的多个列
# 语法scan '表名', {COLUMNS => [ '列族名1:列名1', '列族名1:列名2', ...]}# 示例scan 'tbl_user', {COLUMNS => [ 'info:id', 'info:age']}

0832d368619d898e7dde8580c8f7398c.png

10.2 TIMESTAMP 指定时间戳
scan 't1', {COLUMNS => 'c2', TIMESTAMP=> 1552819392398}
10.3 TIMERANGE表示的是”>=开始时间 and
# 语法scan '表名',{TIMERANGE=>[timestamp1, timestamp2]}# 示例scan 'tbl_user',{TIMERANGE=>[1551938004321, 1551938036450]}

92a5369978cc7b7b795627147e9ffb52.png

10.4 VERSIONS

默认情况下一个列只能存储一个数据,后面如果修改数据就会将原来的覆盖掉,可以通过指定VERSIONS时HBase一列能存储多个值。

create 'tbl_test', 'columnFamily1'describe 'tbl_test'# 修改列族版本号alter 'tbl_test', { NAME=>'columnFamily1', VERSIONS=>3 }put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value1'put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value2'put 'tbl_test', 'rowKey1', 'columnFamily1:column1', 'value3'# 默认返回最新的一条数据get 'tbl_test','rowKey1','columnFamily1:column1'# 返回3个get 'tbl_test','rowKey1',{COLUMN=>'columnFamily1:column1', VERSIONS=>3}# 返回2个get 'tbl_test','rowKey1',{COLUMN=>'columnFamily1:column1', VERSIONS=>2}

b7090b8c2b84528c04b683a17b5f1b78.png

10.5 STARTROW

ROWKEY起始行。会先根据这个key定位到region,再向后扫描

# 语法scan '表名', { STARTROW => '行键名'}# 示例scan 'tbl_user', { STARTROW => 'vbirdbest'}

17aa5467fa67dfa19b9c960c10b96c1a.png

10.6 STOPROW :截止到STOPROW行,STOPROW行之前的数据,不包括STOPROW这行数据
# 语法scan '表名', { STOPROW => '行键名'}# 示例scan 'tbl_user', { STOPROW => 'vbirdbest'}

0449ef31deb976c9be13b16d1f68bdd5.png

10.7 LIMIT 返回的行数
# 语法scan '表名', { LIMIT => 行数}# 示例scan 'tbl_user', { LIMIT => 2 }

d119d08926f70d32e403a12029137458.png

11. FILTER条件过滤器

过滤器之间可以使用AND、OR连接多个过滤器。

ValueFilter 值过滤器
# 语法:binary 等于某个值scan '表名', FILTER=>"ValueFilter(=,'binary:列值')"# 语法 substring:包含某个值scan '表名', FILTER=>"ValueFilter(=,'substring:列值')"# 示例scan 'tbl_user', FILTER=>"ValueFilter(=, 'binary:26')"scan 'tbl_user', FILTER=>"ValueFilter(=, 'substring:6')"

b17a4326f9fbe62220c234631d1d2916.png

ColumnPrefixFilter 列名前缀过滤器
# 语法 substring:包含某个值scan '表名', FILTER=>"ColumnPrefixFilter('列名前缀')"# 示例scan 'tbl_user', FILTER=>"ColumnPrefixFilter('birth')"# 通过括号、AND和OR的条件组合多个过滤器scan 'tbl_user', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter(=,'substring:26')"

cac98b9bd959362164216882c311942b.png

rowKey字典排序

Table中的所有行都是按照row key的字典排序的3a78599642e28d49886cb77df914c83b.png

八:HBase 常见错误

hbase shell在使用的时候经常会报错,这里列举了几个错误:

1. HBase创建不存在的表报已经存在错误 ERROR: Table already exists: !

解决办法:

# 1. 进入zookeeper client模式cd /usr/local/Cellar/hbase/1.2.9/binhbase zkcli# 2. 在zk client模式下输入ls /hbase/table命令看到zombie tablels /hbase/table# 3. 删除表,TABLE_NAME为要删除的表名rmr /hbase/table/TABLE_NAME# 4. 重启hbase./stop-hbase.sh./start-hbase.sh
2. ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
# 使用jps查看是否有datanode服务jps删除hadoop 的临时目录/usr/local/Cellar/hadoop/3.1.1/libexec/tmp
3. ERROR: Can’t get master address from ZooKeeper; znode data == null
# 重启hbase./stop-hbase.sh./start-hbase.sh
4. ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    这个错误出现的原因很多,这里说一下我的错误原因是hbase-site.xml中的有个属性名配置错误, 网上有的是hbase.rootdir, name配置成这个有的时候会报错有的时候不会报错,报错的时候格式化一下hadoop然后再重新启动,这种方式有的时候能解决问题,有的时候解决不了。这里我将hbase.rootdir改为hbase.root.dir 就不报错了,不知道是不是版本不同属性名配置不同,我的hadoop版本为3.1.1,hbase版本为1.2.9

<property>  <name>hbase.root.dirname>  <value>hdfs://localhost:8020/hbasevalue>property>
weixin_39641738
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【大数据HBase 系列】Hbase 常用 Shell 命令
weixin_54707168的博客
04-06 1338
【大数据HBase 系列】Hbase 常用 Shell 命令
apache_hbase_reference_guide.pdf
10-23
Intro,Configure,Upgrade,Shell,Data Model,Schema Design,Hbase and MapReduce,Security,Architecture,In-memory Compaction,Backup and Restore, Synchronous Replication,Hbase APIs, 等等
常用的HBase shell基本命令
摆烂小猴子
12-04 5488
进入hbase shell ,首先启动Hadoop,在启动hbase,然后启动hbase shellcd /usr/local/hadoop --> ./sbin/start-dfs.sh (退出Hadoop:./sbin/stop-dfs.sh)cd /usr/local/hbase --> ./bin/start-hbase.sh (退出hbase:./bin/stop-hbase.sh)直接输入 :hbase shell(./bin/hbase shell) (退出shell:e
HBase Shell命令大全
热门推荐
人不风流枉少年
03-18 13万+
HBase关键名称: Row Key 列 column family 单元 Cell 时间戳 timestamp HBase Shell 是官方提供的一组命令,用于操作HBase。如果配置了HBase的环境变量了,就可以知己在命令行中输入hbase shell 命令进入命令行。 hbase shell help命令 可以通过 help '命名名称'来查看命令行的具体使用 查询服务器状态st...
hbase shell操作命令大全
小强签名设计 的博客
06-23 1万+
一、hbase web操作 访问地址 http://h71:60010 h71的ip配置在$HBASE_HOME/conf/hbase-site.xml中 ip映射成主机名 在env/hosts中配置 在windows系统中的C:\Windows\System32\drivers\etc目录下的hosts文件中配置) 二、hbase shell 基本操作:
【博学谷学习记录】超强总结,用心分享|HBase常用的Shell命令
Sweet~~~
05-29 2293
(2)查看HBase命令帮助文档 (9)删除数据: delete 和 deleteAll (10)查看结构 (11)清空 (12)查询多条数据: scan (13)查看共计有多少条数据 2 HBase的高级shell操作 (1) HBase的过滤器查询 (2)显示HBase当前登录使用用户:whoami (3)判断是否存在:exists ‘名’ (4)修改结构信息
1_schema_compiler_
09-29
我们构造的编译器接受方案编程的一个大子集语言并生成英特尔x86的汇编代码架构,个人计算的主导架构。这个编译器的开发分为许多小的增量台阶。每一步都产生一个完全工作的编译器展开方案子集。每个编译器步骤都会...
C_code_display_XML_data_schema.rar_XML SCHEMA C#_xml schema_xml
09-14
C编程实现显示XML数据和架构代码C programming code to display XML data and schema
trafaret_schema:json_schema转换为Trafaret
05-08
from trafaret_schema import json_schema check_string = json_schema({'type': 'string', 'minLength': 6, 'maxLength': 10, 'pattern': '(bla)+'}) check_string('blablabla') 需要注意的重要一点是,该库是产生...
scl.rar_IEC61850_SCL_SCL schema_V2 _scl验证
09-22
IEC61850验证静态模型文件,版本为SCL_Schema_V2.0
HBase基础及shell操作
m0_58535137的博客
05-09 7536
什么是HBase HBase是采用java语言编写的一款 apache 开源的基于HDFS的NoSQL型数据库,不支持 SQL,不支持事务,不支持Join操作,没有关系 HBase特点 1.不支持事务 2.主要存储结构化数据以及半结构化的数据 3.​HBase中数据存储都是以字节的形式来存储的 4.HBase是易于扩展的 HBase具有三大特征: 1- 大: 在一个中可以存储上十亿行的数据, 可以拥有上百万个列 2- 面向列: 是基于列进行管理操作, 基于列进行列式存储方案 3- 稀疏性: 在
HBase常用命令(超全超详细)
未来在这儿的专栏
01-25 1万+
本节我们将向您展示如何使用 hbase shell CLI 在 HBase 中创建、在中插入行、对执行放置和扫描操作、启用或禁用以及启动和停止 HBase。主要讲述了HBase的CRUD等基本DDL和DML操作。HBase Shell 中的删除键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。
HBase的常用Shell命令
最新发布
人在杰途的博客
06-05 970
注意:在HBase命令窗口中输入命令,如果输入出错,直接使用删除键【delete】是无法删除输入字符的,必须使用【ctrl+delete】组合键才能删除。重点:HBase没有数据库的概念,只有命名空间的概念namespace,相当于库,HBase就是组织在命名空间里。创建时如果没有指明命名空间,则默认该创建在HBase的默认命名空间‘default’中。设置列可以设置生存时间(以秒为单位),HBase将在到达到期时间后自动删除该列。设置查询数据的时间戳区间。设置查询数据的时间戳。
Hbase的基本Shell命令
weixin_44695980的博客
07-09 2317
一、启动habse分布式集群 在集群的某个节点启动hbase集群的命令:start-hbase.sh 二、进入hbase的客服端命令hbase shell 三、hbase基本shell命令: 注意HBase Shell 中的回格键没用,要用【Ctrl+Backspace】,每个命令之后不需要分号(;)结束。 HBase帮助命令hbase(main):003:0> help ‘creat...
HBase 常用Shell命令
weixin_34265814的博客
12-31 2066
2019独角兽企业重金招聘Python工程师标准>>> ...
HBase 系列(五)——HBase常用 Shell 命令
黑白影的博客
06-07 2万+
一、基本命令 打开Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 status 1.3 查看版本信息 version 二、关于的操作 2.1 查看所有 list 2.2 创建 命令格式: create名称’, ‘列名称1’,‘列名称2’,‘列名称N’...
HBase常用Shell命令
qq_43695848的博客
05-23 1万+
在使用具体的Shell命令操作HBase数据之前,需要首先启动Hadoop,然后再启动HBase,并且启动HBase Shell,进入Shell命令提示符状态,具体命令如下: cd /usr/local/hadoop ./sbin/start-dfs.sh cd /usr/local/hbase ./bin/start-hbase.sh ./bin/hbase shell 1.在HBase中创建 假设这里要创建一个student,该包含Sname、Ssex、Sage、Sdept、cours
Hbase05:HBase 常用Shell命令:基础命令、DDL命令、增删改查、命名空间相关命令
weixin_40612128的博客
03-06 3865
一、HBase 常用Shell命令 HBase集群启动之后,下面我们来操作一下HBase 1、HBase两种形式 HBase的使用在工作中主要分为两种形式 1、在开发和调试阶段,我们会通过HBase自带的shell命令行去操作,可以执行创建,添加数据,修改数据之类的操作,比较方便 2、在程序上线运行阶段,需要通过代码来操作HBaseHBase提供的有JavaAPI可以使用 在这里我们先看一下HBase中常用的一些shell命令 2、HBase命令分类 在这里可以把HBase中的命令总结为三种 1、基础命
HBase命令总结,这一篇就够了
qq_37480069的博客
05-28 3721
HBase是一个分布式、面向列的开源数据库,基于Hadoop的HDFS存储数据,提供实时读写能力。本文将介绍HBase的常用命令
create schema authorization
05-25
"CREATE SCHEMA" is a SQL statement used to create a new schema in a database. "AUTHORIZATION" is an optional clause that specifies the owner of the schema. For example: ``` CREATE SCHEMA my_schema AUTHORIZATION my_user; ``` This statement creates a new schema called "my_schema" and sets "my_user" as its owner. If the "AUTHORIZATION" clause is not specified, the current user creating the schema will become its owner by default.

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 2000坐标系转经纬度工具_ARCGIS实现多个XY坐标转经纬度坐标 45822
  • x79主板bios设置详解_主板报警声代表什么意思? 6321
  • python圣诞树代码成品图片动态_节日快乐! Python画一棵圣诞树送给你 6234
  • 小米电视 请输入正确的服务器,小米盒子无法共享电脑资源,总是说请输入服务器正确的用户名和密码... 6042
  • python excel文件转为csv文件_python实现将excel文件转化成CSV格式 4495

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • win7系统怎样开启wmi服务器,WMI服务是什么?Win7系统如何禁用WMI服务?
  • css padding属性颜色,css属性padding
  • 怎么创建css样式表,创建CSS样式表的十个技巧
2021年139篇
2020年211篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源街机模拟器194个游戏氵字旁的字有哪些字起名子好起名网站免费大全云字辈起名女孩联想笔记本专卖国外公司起名羁绊6.3廉政总结下女电影完整版小汤山名字由来小学生周记姓崔起名字大全男邵兵个人资料简介中国刑警之九月风暴郑氏起名称大全给宝宝起那些乳名好陶起男孩名字给古人起名字公司取名起名大全凶吉查询利用父母起名瓷都姓名测试家纺店取名起名大全视而不见的意思捆绑绳艺新浪直播cba2020女孩起名字好寓意的字免费自我鉴定300字好看的悬疑小说起名 app吴姓起名字大全淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化