HBase常用操作命令

来源:http://www.cnblogs.com/shadowalker/archive/2017/08/12/7350484.html
-Advertisement-
Play Games

HBase常用命令 進入shell 表結構 1\. 創建表 語法: 創建一個User表,並且有一個info列族 3\. 查看所有表 4\. 查看表詳情 5\. 表修改 刪除指定的列族 表數據 1\. 插入數據 語法: 2\. 根據rowKey查詢某個記錄 語法: 3\. 查詢所有記錄 語法: 掃描所 ...


HBase常用命令

  • 進入shell
[hadoop@indb-3-136-hzifc bin]$ echo $HBASE_HOME
/data/program/hbase
[hadoop@indb-3-136-hzifc bin]$ /data/program/hbase/bin/hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/program/hbase-1.2.0-cdh5.8.3/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/program/hadoop-2.6.0-cdh5.8.3/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.0-cdh5.8.3, rUnknown, Wed Oct 12 20:33:08 PDT 2016

hbase(main):035:0> whoami
hadoop (auth:SIMPLE)
    groups: hadoop
  • 表結構

1. 創建表

語法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
創建一個User表,並且有一個info列族

hbase(main):002:0> create 'User','info'
0 row(s) in 1.5890 seconds

=> Hbase::Table - User

3. 查看所有表

hbase(main):003:0> list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
TEST.USER
User
6 row(s) in 0.0340 seconds

=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "TEST.USER", "User"]

4. 查看表詳情

hbase(main):004:0> describe 'User'
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.1410 seconds

hbase(main):025:0> desc 'User'
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0380 seconds

5. 表修改

刪除指定的列族

hbase(main):002:0> alter 'User', 'delete' => 'info'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.5340 seconds
  • 表數據

1. 插入數據

語法:put <table>,<rowkey>,<family:column>,<value>

hbase(main):005:0> put 'User', 'row1', 'info:name', 'xiaoming'
0 row(s) in 0.1200 seconds

hbase(main):006:0> put 'User', 'row2', 'info:age', '18'
0 row(s) in 0.0170 seconds

hbase(main):007:0> put 'User', 'row3', 'info:sex', 'man'
0 row(s) in 0.0030 seconds

2. 根據rowKey查詢某個記錄

語法:get <table>,<rowkey>,[<family:column>,....]

hbase(main):008:0> get 'User', 'row2'
COLUMN                                  CELL
 info:age                               timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds

hbase(main):028:0> get 'User', 'row3', 'info:sex'
COLUMN                                  CELL
 info:sex                               timestamp=1502368093636, value=man

hbase(main):036:0> get 'User', 'row1', {COLUMN => 'info:name'}
COLUMN                                  CELL
 info:name                              timestamp=1502368030841, value=xiaoming
1 row(s) in 0.0120 seconds

3. 查詢所有記錄

語法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
掃描所有記錄

hbase(main):009:0> scan 'User'
ROW                                     COLUMN+CELL
 row1                                   column=info:name, timestamp=1502368030841, value=xiaoming
 row2                                   column=info:age, timestamp=1502368069926, value=18
 row3                                   column=info:sex, timestamp=1502368093636, value=man
3 row(s) in 0.0380 seconds

掃描前2條

hbase(main):037:0> scan 'User', {LIMIT => 2}
ROW                                     COLUMN+CELL
 row1                                   column=info:name, timestamp=1502368030841, value=xiaoming
 row2                                   column=info:age, timestamp=1502368069926, value=18
2 row(s) in 0.0170 seconds

範圍查詢

hbase(main):011:0> scan 'User', {STARTROW => 'row2'}
ROW                                     COLUMN+CELL
 row2                                   column=info:age, timestamp=1502368069926, value=18
 row3                                   column=info:sex, timestamp=1502368093636, value=man
2 row(s) in 0.0170 seconds
hbase(main):012:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row2'}
ROW                                     COLUMN+CELL
 row2                                   column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0110 seconds

hbase(main):013:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
ROW                                     COLUMN+CELL
 row2                                   column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0120 seconds

另外,還可以添加TIMERANGE和FITLER等高級功能

STARTROW,ENDROW必須大寫,否則報錯;查詢結果不包含等於ENDROW的結果集

4. 統計表記錄數
語法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

INTERVAL設置多少行顯示一次及對應的rowkey,預設1000;CACHE每次去取的緩存區大小,預設是10,調整該參數可提高查詢速度

hbase(main):020:0> count 'User'
3 row(s) in 0.0360 seconds

=> 3

5. 刪除

刪除列

hbase(main):008:0> delete 'User', 'row1', 'info:age'
0 row(s) in 0.0290 seconds

刪除所有行

hbase(main):014:0> deleteall 'User', 'row2'
0 row(s) in 0.0090 seconds

刪除表中所有數據

hbase(main):016:0> truncate 'User'
Truncating 'User' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 3.6610 seconds
  • 表管理

1. 禁用表

hbase(main):014:0> disable 'User'
0 row(s) in 2.2660 seconds
hbase(main):015:0> describe 'User'
Table User is DISABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0340 seconds

hbase(main):016:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
ROW                                     COLUMN+CELL

ERROR: User is disabled.

2. 啟用表

hbase(main):017:0> enable 'User'
0 row(s) in 1.3470 seconds

hbase(main):018:0> describe 'User'
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FORE
VER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0310 seconds

hbase(main):019:0> scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
ROW                                     COLUMN+CELL
 row2                                   column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds

3. 測試表是否存在

hbase(main):022:0> exists 'User'
Table User does exist
0 row(s) in 0.0150 seconds

hbase(main):023:0> exists 'user'
Table user does not exist
0 row(s) in 0.0110 seconds

hbase(main):024:0> exists user
NameError: undefined local variable or method `user' for #<Object:0x412ebe64>

4. 刪除表

刪除前,必須先disable

hbase(main):030:0> drop 'TEST.USER'

ERROR: Table TEST.USER is enabled. Disable it first.

Here is some help for this command:
Drop the named table. Table must first be disabled:
  hbase> drop 't1'
  hbase> drop 'ns1:t1'

hbase(main):031:0> disable 'TEST.USER'
0 row(s) in 2.2640 seconds

hbase(main):033:0> drop 'TEST.USER'
0 row(s) in 1.2490 seconds

hbase(main):034:0> list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
User
5 row(s) in 0.0080 seconds

=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.SEQUENCE", "SYSTEM.STATS", "User"]

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ...
  • 1.前提是linux系統已經安裝了上一篇講的Zookeeper和jdk[1.7及以上版本]還有python[centos已經自帶,2.6及以上版本] 2.解壓storm壓縮包 3.配置storm.yaml文件 配置zookeeper(建議配置偶數個,貌似配奇數個會報錯) 配置nimbus 配置sup ...
  • 1 概述 1 概述 本篇文章主要講解SqlServer中類型轉換涉及的兩個函數:CAST和CONVERT。 2 具體內容 2 具體內容 2.1 CAST (1)作用:將一種數據類型的表達式轉換為另一種數據類型的表達式。 (2)定義: Parameters: expression:任何可轉換為 dat ...
  • 如何避免索引失效 1、全值匹配我最愛 建立幾個複合索引欄位,最好就用上幾個欄位。且按照順序來用。 2、最佳左首碼法則 如果索引了多列,要遵守最左首碼法則,指的是查詢從索引的最左前列開始,不跳過索引中間的列。 3、不再索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表 ...
  • MySQL創建: 1.創建資料庫create database test2; 2.刪除資料庫drop database test2;3.創建表create table ceshi( ids int auto_increment primary key, uid varchar(20), name v ...
  • 1 概述 1 概述 本篇文章簡要分析,在SQL SERVER中,AS的基本用法。 2 具體分析 2 具體分析 2.1 定義變數類型 2.2 取別名 2.2.1 為結果集列取別名 code: result: code: result: 2.2.2 為表取別名 2.2.3 為子查詢取別名 2.3 轉換類 ...
  • 使用過oracle或者其他關係資料庫的DBA或者開發人員都有這樣的經驗,在子查詢上都認為資料庫已經做過優化,能夠很好的選擇驅動表執行,然後在把該經驗移植到mysql資料庫上,但是不幸的是,mysql在子查詢的處理上有可能會讓你大失所望,在我們的生產系統上就由於碰到了這個問題: select i_id ...
  • 在mysql伺服器高負載的情況下,必須採取一種措施給伺服器減輕壓力,減少伺服器的I/O操作。一般採用的方法是優化sql操作語句,優化伺服器的配置參數,從而提高伺服器的性能。Mysql使用了幾種記憶體緩存數據的策略來提高性能。 一、mysql的緩存機制 Mysql緩存主要包括關鍵字緩存(key cach ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...