天天看点

Hbase基本语句用法

使用hbase shell命令进入hbase:

<code>[root@abcdefghijklmnopqrstuvwxyzabcdefghijkl123456789012~]</code><code># hbase shell</code>

<code>SLF4J: Class path contains multiple SLF4Jbindings.</code>

<code>SLF4J: Found binding </code><code>in</code><code>[jar:</code><code>file</code><code>:</code><code>/usr/hdp/2</code><code>.4.3.0-227</code><code>/hadoop/lib/slf4j-log4j12-1</code><code>.7.10.jar!</code><code>/org/slf4j/impl/StaticLoggerBinder</code><code>.class]</code>

<code>SLF4J: Found binding </code><code>in</code><code>[jar:</code><code>file</code><code>:</code><code>/usr/hdp/2</code><code>.4.3.0-227</code><code>/zookeeper/lib/slf4j-log4j12-1</code><code>.6.1.jar!</code><code>/org/slf4j/impl/StaticLoggerBinder</code><code>.class]</code>

<code>SLF4J: Seehttp:</code><code>//www</code><code>.slf4j.org</code><code>/codes</code><code>.html</code><code>#multiple_bindings for an explanation.</code>

<code>SLF4J: Actual binding is of </code><code>type</code><code>[org.slf4j.impl.Log4jLoggerFactory]</code>

<code>HBase Shell; enter </code><code>'help&lt;RETURN&gt;'</code> <code>forlist of supported commands.</code>

<code>Type </code><code>"exit&lt;RETURN&gt;"</code> <code>toleave the HBase Shell</code>

<code>Version 1.1.2.2.4.3.0-227, rUnknown, FriSep  9 23:34:30 UTC 2016</code>

<code> </code> 

<code>hbase(main):001:0&gt;</code>

输入help 查看帮助信息

<code>hbase(main):001:0&gt; help</code>

<code>HBase Shell, version 1.1.2.2.4.3.0-227,rUnknown, Fri Sep  9 23:34:30 UTC 2016</code>

<code>Type </code><code>'help "COMMAND"'</code><code>, (e.g.</code><code>'help "get"'</code> <code>-- the quotes are necessary) </code><code>for</code> <code>help on a specificcommand.</code>

<code>Commands are grouped. Type </code><code>'help"COMMAND_GROUP"'</code><code>, (e.g. </code><code>'help "general"'</code><code>) </code><code>for</code> <code>help on acommand group.</code>

<code>COMMAND GROUPS:</code>

<code> </code><code>Group name: general</code>

<code> </code><code>Commands: status, table_help, version, </code><code>whoami</code>

<code>…</code>

查看服务器状态:

<code>hbase(main):002:0&gt; status</code>

<code>1 active master, 0 backup masters, 4servers, 0 dead, 20.5000 average load</code>

查看版本信息

<code>hbase(main):003:0&gt; version</code>

<code>1.1.2.2.4.3.0-227, rUnknown, Fri Sep  9 23:34:30 UTC 2016</code>

查看当前用户:

<code>hbase(main):004:0&gt; </code><code>whoami</code>

<code>root (auth:SIMPLE)</code>

<code>groups</code><code>: root</code>

查看表相关命令的帮助信息:

<code>hbase(main):005:0&gt;  table_help</code>

<code>Help </code><code>for</code> <code>table-reference commands.</code>

<code>You can either create a table via </code><code>'create'</code><code>and </code><code>then</code> <code>manipulate the table via commands like </code><code>'put'</code><code>, </code><code>'get'</code><code>, etc.</code>

<code>See the standard help information </code><code>for</code> <code>howto use each of these commands.</code>

创建表

常用语法:create  '[namespacename:]tablename' [ ,'columnfamilyname1' [  ,'columnfamilyname2, ....]]

详细语法使用help -create 查看create语句

<code>hbase(main):006:0&gt; create </code><code>'test'</code><code>,</code><code>'fam1'</code><code>,</code><code>'fam2'</code>

<code>0 row(s) </code><code>in</code> <code>8.3530 seconds</code>

<code>=&gt; Hbase::Table – </code><code>test</code>

使用list命令列出表名:

常用语法:list   '[namespacename:]tablename]

详细语法可以使用help 'list' 查看,list 后面可以跟正则表达式,列出符合表达式的表名

<code>hbase(main):011:0&gt; list </code><code>'test'</code> <code>–列出名为</code><code>test</code><code>的表名</code>

<code>TABLE                                                                                                                                                              </code>

<code>test</code>                                                                                                                                                               

<code>1 row(s) </code><code>in</code> <code>0.0110 seconds</code>

<code>=&gt; [</code><code>"test"</code><code>]</code>

<code>hbase(main):012:0&gt; list </code><code>'tes.*'</code><code>—列出以名称tes开头的表名</code>

<code>test</code><code>:testtable                                                                                                                                                      </code>

<code>2 row(s) </code><code>in</code> <code>0.0150 seconds</code>

<code>=&gt; [</code><code>"test"</code><code>,</code><code>"test:testtable"</code><code>]</code>

<code>hbase(main):013:0&gt; list </code><code>'default:.*'</code> <code>–列出default命名空间下的表名</code>

<code>TABLE                                                                                                                                                               </code>

<code>ambarismoketest                                                                                                                                                    </code>

<code>=&gt; [</code><code>"ambarismoketest"</code><code>,</code><code>"test"</code><code>]</code>

<code>hbase(main):014:0&gt; list </code><code>'test:.*'</code> <code>–列出</code><code>test</code><code>这个命名空间下的表名</code>

<code>1 row(s) </code><code>in</code> <code>0.0140 seconds</code>

<code>=&gt; [</code><code>"test:testtable"</code><code>]</code>

使用desc命令查看指定表的具体信息(desc等同于describe)

语法:desc '[namespacename:]tablename'

          describe '[namespacename:]tablename'

详细语法使用help  'describe'查看

<code>hbase(main):016:0&gt; desc </code><code>'test'</code>  <code>查看</code><code>test</code><code>这张表的信息</code>

<code>Table </code><code>test</code> <code>is ENABLED                                                                                                                                               </code>

<code>COLUMN FAMILIES DESCRIPTION                                                                                                                                        </code>

<code>{NAME =&gt; </code><code>'fam1'</code><code>, BLOOMFILTER =&gt;</code><code>'ROW'</code><code>, VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt;</code><code>'FALSE'</code><code>, DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COMPRE</code>

<code>SSION =&gt; </code><code>'NONE'</code><code>, MIN_VERSIONS =&gt; </code><code>'0'</code><code>,BLOCKCACHE =&gt; </code><code>'true'</code><code>, BLOCKSIZE =&gt; </code><code>'65536'</code><code>, REPLICATION_SCOPE =&gt;</code><code>'0'</code><code>}                                                        </code>

<code>{NAME =&gt; </code><code>'fam2'</code><code>, BLOOMFILTER =&gt;</code><code>'ROW'</code><code>, VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt;</code><code>'FALSE'</code><code>, DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COMPRE</code>

<code>2 row(s) </code><code>in</code> <code>0.1710 seconds</code>

<code>hbase(main):017:0&gt; desc </code><code>'test:testtable'</code><code>查看</code><code>test</code><code>命名空间下testtable这张表的信息</code>

<code>Table </code><code>test</code><code>:testtable is ENABLED                                                                                                                                    </code>

<code>test</code><code>:testtable                                                                                                                                                     </code>

<code>COLUMN FAMILIES DESCRIPTION                                                                                                                                         </code>

<code>{NAME =&gt; </code><code>'colfam1'</code><code>, BLOOMFILTER =&gt;</code><code>'ROW'</code><code>, VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt;</code><code>'FALSE'</code><code>, DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COM</code>

<code>PRESSION =&gt; </code><code>'NONE'</code><code>, MIN_VERSIONS =&gt;</code><code>'0'</code><code>, BLOCKCACHE =&gt; </code><code>'true'</code><code>, BLOCKSIZE =&gt; </code><code>'65536'</code><code>, REPLICATION_SCOPE =&gt;</code><code>'0'</code><code>}                                                     </code>

<code>{NAME =&gt; </code><code>'colfam2'</code><code>, BLOOMFILTER =&gt;</code><code>'ROW'</code><code>, VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt;</code><code>'FALSE'</code><code>, DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COM</code>

<code>PRESSION =&gt; </code><code>'NONE'</code><code>, MIN_VERSIONS =&gt;</code><code>'0'</code><code>, BLOCKCACHE =&gt; </code><code>'true'</code><code>, BLOCKSIZE =&gt; </code><code>'65536'</code><code>, REPLICATION_SCOPE =&gt;</code><code>'0'</code><code>}                                                      </code>

<code>{NAME =&gt; </code><code>'colfam3'</code><code>, BLOOMFILTER =&gt;</code><code>'ROW'</code><code>, VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt;</code><code>'FALSE'</code><code>, DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COM</code>

<code>3 row(s) </code><code>in</code> <code>0.0290 seconds</code>

使用put插入数据

常用语法:put '[namespacename:]tablename' , 'rowkey' , 'columnfamilyname[:column]' , 'value'

详细语法使用help 'put'查看

<code>hbase(main):002:0&gt; put</code><code>'test'</code><code>,</code><code>'row2'</code><code>,</code><code>'fam1:a'</code><code>,</code><code>'value'</code>

<code>0 row(s) </code><code>in</code> <code>0.3760 seconds</code>

<code>hbase(main):003:0&gt; put </code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code><code>,</code><code>'value'</code>

<code>hbase(main):004:0&gt; put </code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam2:a'</code><code>,</code><code>'value'</code>

<code>hbase(main):005:0&gt; put</code><code>'test'</code><code>,</code><code>'row2'</code><code>,</code><code>'fam2:a'</code><code>,</code><code>'value'</code>

使用scan查看全表数据

常用语法:scan '[namespacename:]tablename'

详细语法使用help 'scan'查看

<code>hbase(main):002:0&gt; scan </code><code>'test'</code>

<code>ROW                                       COLUMN+CELL                                                                                                             </code>

<code> </code><code>row1                                     column=fam1:a, timestamp=1504767451331, value=value                                                                     </code>

<code> </code><code>row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                     </code>

<code> </code><code>row2                                     column=fam1:a, timestamp=1504767600686, value=value                                                                     </code>

<code> </code><code>row2                                     column=fam2:a, timestamp=1504767715014, value=value                                                                     </code>

<code>2 row(s) </code><code>in</code> <code>0.1120 seconds</code>

查看指定列的数据:

<code>hbase(main):004:0&gt; scan </code><code>'test'</code><code>,{COLUMNS=&gt; </code><code>'fam1:a'</code><code>}</code>

<code>ROW                                       COLUMN+CELL                                                                                                              </code>

<code> </code><code>row2                                      column=fam1:a,timestamp=1504767600686, value=value                                                                     </code>

<code>2 row(s) </code><code>in</code> <code>0.2390 seconds</code>

<code>hbase(main):021:0&gt; get </code><code>'test'</code><code>,</code><code>'row1'</code>

<code>COLUMN                                     CELL                                                                                                                    </code>

<code> </code><code>fam1:a                                   timestamp=1504768075731, value=\x00\x00\x00\x00\x00\x00\x00\x02                                                         </code>

<code> </code><code>fam2:a                                   timestamp=1504767471977, value=value                                                                                    </code>

<code>2 row(s) </code><code>in</code> <code>0.1110 seconds</code>

使用get查询数据:

语法:get  '[namespacename:]tablename' , 'rowkey' [, 'columnfamliyname[:column]']

详细语法使用help 'get'查看

<code>hbase(main):024:0&gt; get</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1'</code>

<code>1 row(s) </code><code>in</code> <code>0.0690 seconds</code>

<code>hbase(main):026:0&gt; get </code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code>

<code>1 row(s) </code><code>in</code> <code>0.0430 seconds</code>

使用delete删除数据

常用语法:delete '[namespacename:]tablename' , 'rowkey' , 'columnfamliyname:column'

当表中存在只制定了columnfamily没有具体制定column的数据时,delete可以这么用

delete '[namespacename:]tablename' , 'rowkey' , 'columnfamliyname',不存在这样的数据,使用这样的语句不会删除数据。

更详细的语法使用help 'delete'查看

<code>hbase(main):008:0&gt; delete</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code>

<code>0 row(s) </code><code>in</code> <code>0.3370 seconds</code>

<code>hbase(main):009:0&gt; scan </code><code>'test'</code>

<code>2 row(s) </code><code>in</code> <code>0.0850 seconds</code>

使用incr增加数据(默认使用counter实现递增)

常用语法:incr '[namespacename:]tablename' , 'rowkey' , 'columnfamilyname:column'

更详细的语法使用help 'incr'查看

<code>hbase(main):012:0&gt; incr</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code>

<code>COUNTER VALUE = 1</code>

<code>0 row(s) </code><code>in</code> <code>1.1700 seconds</code>

<code>hbase(main):013:0&gt; scan </code><code>'test'</code>

<code> </code><code>row1                                      column=fam1:a,timestamp=1504768054892, value=\x00\x00\x00\x00\x00\x00\x00\x01                                          </code>

<code> </code><code>row1                                     column=fam2:a, timestamp=1504767471977, value=value                                                                      </code>

<code> </code><code>row2                                      column=fam2:a, timestamp=1504767715014,value=value                                                                     </code>

<code>2 row(s) </code><code>in</code> <code>0.0410 seconds</code>

<code>hbase(main):014:0&gt; incr</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code>

<code>COUNTER VALUE = 2</code>

<code>0 row(s) </code><code>in</code> <code>0.0480 seconds</code>

<code>hbase(main):015:0&gt; scan </code><code>'test'</code>

<code> </code><code>row1                                     column=fam1:a, timestamp=1504768075731,value=\x00\x00\x00\x00\x00\x00\x00\x02                                          </code>

<code>2 row(s) </code><code>in</code> <code>0.0770 seconds</code>

使用get_counter查看当前的counter值:

<code>hbase(main):027:0&gt; get_counter</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code>

使用put更新数据:

<code>hbase(main):029:0&gt; scan </code><code>'test'</code>

<code>ROW                                        COLUMN+CELL                                                                                                             </code>

<code>2 row(s) </code><code>in</code> <code>0.0270 seconds</code>

<code>hbase(main):030:0&gt; put</code><code>'test'</code><code>,</code><code>'row1'</code><code>,</code><code>'fam1:a'</code><code>,</code><code>'newvalue'</code>

<code>0 row(s) </code><code>in</code> <code>0.0250 seconds</code>

<code>hbase(main):031:0&gt; scan </code><code>'test'</code>

<code> </code><code>row1                                     column=fam1:a, timestamp=1504768397480, value=newvalue                                                                   </code>

<code>2 row(s) </code><code>in</code> <code>0.0760 seconds</code>

使用is_enabled/is_disabled查看表是否被启用/禁用

<code>hbase(main):032:0&gt; is_enable </code><code>'test'</code>

<code>NoMethodError: undefined method `is_enable'</code><code>for</code> <code>#&lt;Object:0x15d114ce&gt;</code>

<code>hbase(main):033:0&gt; is_enabled </code><code>'test'</code>

<code>true</code>                                                                                                                                                               

<code>0 row(s) </code><code>in</code> <code>0.1180 seconds</code>

<code>hbase(main):034:0&gt; is_disabled </code><code>'test'</code>

<code>false</code>                                                                                                                                                              

<code>0 row(s) </code><code>in</code> <code>0.0190 seconds</code>

使用disable禁用表

<code>hbase(main):001:0&gt; disable </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>4.7170 seconds</code>

<code>hbase(main):002:0&gt; is_disabled </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>0.0210 seconds</code>

使用enbale启用表

<code>hbase(main):003:0&gt; </code><code>enable</code> <code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>2.2910 seconds</code>

<code>hbase(main):004:0&gt; is_enabled </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>0.0180 seconds</code>

删除fam1这个columnfamily:

<code>hbase(main):007:0&gt; alter</code><code>'test'</code><code>,{NAME=&gt;</code><code>'fam1'</code><code>,METHOD=&gt;</code><code>'delete'</code><code>}</code>

<code>Updating all regions with the new schema...</code>

<code>1</code><code>/1</code> <code>regions updated.</code>

<code>Done.</code>

<code>0 row(s) </code><code>in</code> <code>2.1980 seconds</code>

<code>hbase(main):008:0&gt; desc </code><code>'test'</code>

<code>Table </code><code>test</code> <code>is ENABLED                                                                                                                                              </code>

<code>{NAME =&gt; </code><code>'fam2'</code><code>, BLOOMFILTER =&gt; </code><code>'ROW'</code><code>,VERSIONS =&gt; </code><code>'1'</code><code>, IN_MEMORY =&gt; </code><code>'false'</code><code>, KEEP_DELETED_CELLS =&gt; </code><code>'FALSE'</code><code>,DATA_BLOCK_ENCODING =&gt; </code><code>'NONE'</code><code>, TTL =&gt; </code><code>'FOREVER'</code><code>, COMPRE</code>

<code>SSION =&gt; </code><code>'NONE'</code><code>, MIN_VERSIONS =&gt; </code><code>'0'</code><code>,BLOCKCACHE =&gt; </code><code>'true'</code><code>, BLOCKSIZE =&gt; </code><code>'65536'</code><code>, REPLICATION_SCOPE =&gt;</code><code>'0'</code><code>}                                                         </code>

<code>1 row(s) </code><code>in</code> <code>0.0350 seconds</code>

清空表数据:

<code>hbase(main):009:0&gt; truncate </code><code>'test'</code>

<code>Truncating </code><code>'test'</code> <code>table (it may take awhile):</code>

<code> </code><code>-Disabling table...</code>

<code> </code><code>-Truncating table...</code>

<code>0 row(s) </code><code>in</code> <code>3.6540 seconds</code>

<code>hbase(main):010:0&gt; scan </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>0.0460 seconds</code>

删除表(必须先disable表才能drop表):

<code>hbase(main):011:0&gt; disable </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>2.2680 seconds</code>

<code>hbase(main):012:0&gt; drop </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>1.2680 seconds</code>

<code>hbase(main):014:0&gt; list </code><code>'test'</code>

<code>0 row(s) </code><code>in</code> <code>0.0110 seconds</code>

<code>=&gt; []</code>

本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/1963443,如需转载请自行联系原作者