2018-09-26---hbase表操作命令

創(chuàng)建表

create 'test1', 'lf', 'sf'

lf: column family of LONG values (binary value)

-- sf: column family of STRING values

導(dǎo)入數(shù)據(jù)

put 'test1', 'user1|ts1', 'sf:c1', 'sku1'

put 'test1', 'user1|ts2', 'sf:c1', 'sku188'

put 'test1', 'user1|ts3', 'sf:s1', 'sku123'

put 'test1', 'user2|ts4', 'sf:c1', 'sku2'

put 'test1', 'user2|ts5', 'sf:c2', 'sku288'

put 'test1', 'user2|ts6', 'sf:s1', 'sku222'

一個(gè)用戶(userX),在什么時(shí)間(tsX),作為rowkey

對(duì)什么產(chǎn)品(value:skuXXX)奔脐,做了什么操作作為列名峦朗,比如,c1: click from homepage; c2: click from ad; s1: search from homepage; b1: buy

查詢案例

誰的值=sku188

scan 'test1', FILTER=>"ValueFilter(=,'binary:sku188')"

ROW??????????????????????????COLUMN+CELL????????????????????

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

誰的值包含88

scan 'test1', FILTER=>"ValueFilter(=,'substring:88')"

ROW??????????????????????????COLUMN+CELL????

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user2|ts5???????????????????column=sf:c2, timestamp=1409122355030, value=sku288


通過廣告點(diǎn)擊進(jìn)來的(column為c2)值包含88的用戶

scan 'test1', FILTER=>"ColumnPrefixFilter('c2') AND ValueFilter(=,'substring:88')"

ROW??????????????????????????COLUMN+CELL

user2|ts5???????????????????column=sf:c2, timestamp=1409122355030, value=sku288

通過搜索進(jìn)來的(column為s)值包含123或者222的用戶

scan 'test1', FILTER=>"ColumnPrefixFilter('s') AND ( ValueFilter(=,'substring:123') OR ValueFilter(=,'substring:222') )"

ROW??????????????????????????COLUMN+CELL

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

user2|ts6???????????????????column=sf:s1, timestamp=1409122355970, value=sku222

rowkey為user1開頭的

scan 'test1', FILTER => "PrefixFilter ('user1')"

ROW??????????????????????????COLUMN+CELL

user1|ts1???????????????????column=sf:c1, timestamp=1409122354868, value=sku1

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

FirstKeyOnlyFilter: 一個(gè)rowkey可以有多個(gè)version,同一個(gè)rowkey的同一個(gè)column也會(huì)有多個(gè)的值, 只拿出key中的第一個(gè)column的第一個(gè)version

KeyOnlyFilter: 只要key,不要value

scan 'test1', FILTER=>"FirstKeyOnlyFilter() AND ValueFilter(=,'binary:sku188') AND KeyOnlyFilter()"

ROW??????????????????????????COLUMN+CELL

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=

從user1|ts2開始,找到所有的rowkey以u(píng)ser1開頭的

scan 'test1', {STARTROW=>'user1|ts2', FILTER => "PrefixFilter ('user1')"}

ROW??????????????????????????COLUMN+CELL

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

從user1|ts2開始,找到所有的到rowkey以u(píng)ser2開頭

scan 'test1', {STARTROW=>'user1|ts2', STOPROW=>'user2'}

ROW??????????????????????????COLUMN+CELL

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

查詢r(jià)owkey里面包含ts3的

importorg.apache.hadoop.hbase.filter.CompareFilter

import org.apache.hadoop.hbase.filter.SubstringComparator

import org.apache.hadoop.hbase.filter.RowFilter

scan 'test1', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('ts3'))}

ROW??????????????????????????COLUMN+CELL

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

查詢r(jià)owkey里面包含ts的

importorg.apache.hadoop.hbase.filter.CompareFilter

import org.apache.hadoop.hbase.filter.SubstringComparator

import org.apache.hadoop.hbase.filter.RowFilter

scan 'test1', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('ts'))}

ROW??????????????????????????COLUMN+CELL

user1|ts1???????????????????column=sf:c1, timestamp=1409122354868, value=sku1

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

user2|ts4???????????????????column=sf:c1, timestamp=1409122354998, value=sku2

user2|ts5???????????????????column=sf:c2, timestamp=1409122355030, value=sku288

user2|ts6???????????????????column=sf:s1, timestamp=1409122355970, value=sku222

加入一條測試數(shù)據(jù)

put 'test1', 'user2|err', 'sf:s1', 'sku999'

查詢r(jià)owkey里面以u(píng)ser開頭的店溢,新加入的測試數(shù)據(jù)并不符合正則表達(dá)式的規(guī)則床牧,故查詢不出來

import org.apache.hadoop.hbase.filter.RegexStringComparator

importorg.apache.hadoop.hbase.filter.CompareFilter

import org.apache.hadoop.hbase.filter.SubstringComparator

import org.apache.hadoop.hbase.filter.RowFilter

scan 'test1', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),RegexStringComparator.new('^user\d+\|ts\d+$'))}

ROW??????????????????????????COLUMN+CELL

user1|ts1???????????????????column=sf:c1, timestamp=1409122354868, value=sku1

user1|ts2???????????????????column=sf:c1, timestamp=1409122354918, value=sku188

user1|ts3???????????????????column=sf:s1, timestamp=1409122354954, value=sku123

user2|ts4???????????????????column=sf:c1, timestamp=1409122354998, value=sku2

user2|ts5???????????????????column=sf:c2, timestamp=1409122355030, value=sku288

user2|ts6???????????????????column=sf:s1, timestamp=1409122355970, value=sku222

加入測試數(shù)據(jù)

put 'test1', 'user1|ts9', 'sf:b1', 'sku1'

b1開頭的列中并且值為sku1的

scan 'test1', FILTER=>"ColumnPrefixFilter('b1') AND ValueFilter(=,'binary:sku1')"

ROW??????????????????????????COLUMN+CELL???????????????????????????????????????????????????????????????????????

user1|ts9???????????????????column=sf:b1, timestamp=1409124908668, value=sku1

SingleColumnValueFilter的使用,b1開頭的列中并且值為sku1的

importorg.apache.hadoop.hbase.filter.CompareFilter

import org.apache.hadoop.hbase.filter.SingleColumnValueFilter

import org.apache.hadoop.hbase.filter.SubstringComparator

scan 'test1', {COLUMNS => 'sf:b1', FILTER => SingleColumnValueFilter.new(Bytes.toBytes('sf'), Bytes.toBytes('b1'), CompareFilter::CompareOp.valueOf('EQUAL'), Bytes.toBytes('sku1'))}

ROW??????????????????????????COLUMN+CELL

user1|ts9???????????????????column=sf:b1, timestamp=1409124908668, value=sku1

hbase zkcli 的使用

hbase zkcli

ls /

[hbase, zookeeper]

[zk: hadoop000:2181(CONNECTED) 1] ls /hbase

[meta-region-server, backup-masters, table, draining, region-in-transition, running, table-lock, master, namespace, hbaseid, online-snapshot, replication, splitWAL, recovering-regions, rs]

[zk: hadoop000:2181(CONNECTED) 2] ls /hbase/table

[member, test1, hbase:meta, hbase:namespace]

[zk: hadoop000:2181(CONNECTED) 3] ls /hbase/table/test1

[]

[zk: hadoop000:2181(CONNECTED) 4] get /hbase/table/test1

?master:60000}l$??lPBUF

cZxid = 0x107

ctime = Wed Aug 27 14:52:21 HKT 2014

mZxid = 0x10b

mtime = Wed Aug 27 14:52:22 HKT 2014

pZxid = 0x107

cversion = 0

dataVersion = 2

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 31

numChildren = 0

hbase表操作命令

1册踩、認(rèn)證及進(jìn)入:

kinit?命令進(jìn)行認(rèn)證暂吉,進(jìn)入命令:hbase?shell? ? 查看當(dāng)前用戶(whoami)

2慕的、展示表:

list

3肮街、查看表結(jié)構(gòu):

describe? "table.name"

4、掃描表

scan 'table.name',{LIMIT=>5}

5、值包含8888888

scan "table.name",FILTER=>"ValueFilter(=,'binary:888888')"

6擂红、值含有888888

scan "table.name",FILTER=>"ValueFilter(=,'substring:888888')"

7昵骤、column為:c2?的值包含 8888888

scan "table.name",FILTER=>"ColumPrefixFilter('c2') AND ValueFilter(=,'substring:88')"

8变秦、column?為:s1?的值為包含88或者66

scan? “table.name”FILTER=>"ColumPrefixFilter('s') AND (ValueFilter(=,'substring:88')OR ValueFilter(='substring:66')) "

9、rowkey?為user1開頭的

scan 'test1' ,FILTER =>"PrefixFilter('user1')"

10雨饺、get的用法(t為表名额港,r為row,c為行)

hbase> get ‘t1′, ‘r1′

hbase> get ‘t1′, ‘r1′,

{TIMERANGE => [ts1, ts2]}

hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′}

hbase> get ‘t1′, ‘r1′, {COLUMN => ['c1', 'c2', 'c3']}

hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMESTAMP => ts1}

hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMERANGE => [ts1, ts2], VERSIONS => 4}

hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMESTAMP => ts1, VERSIONS => 4}

hbase> get ‘t1′, ‘r1′, ‘c1′

hbase> get ‘t1′, ‘r1′, ‘c1′, ‘c2′

hbase> get ‘t1′, ‘r1′, ['c1', 'c2']

11、scan

hbase> scan ‘.META.'

hbase> scan ‘.META.', {COLUMNS => ‘info:regioninfo'}

hbase> scan ‘t1′, {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => ‘xyz'}

hbase> scan ‘t1′, {COLUMNS => ‘c1′, TIMERANGE => [1303668804, 1303668904]}

hbase> scan ‘t1′, {FILTER => “(PrefixFilter (‘row2′) AND (QualifierFilter (>=, ‘binary:xyz'))) AND (TimestampsFilter ( 123, 456))”}

hbase> scan ‘t1′, {FILTER => org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搁痛,更是在濱河造成了極大的恐慌源请,老刑警劉巖谁尸,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異背镇,居然都是意外死亡瞒斩,警方通過查閱死者的電腦和手機(jī)胸囱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤职,“玉大人允蜈,你說我怎么就攤上這事饶套〖寺” “怎么了蛤克?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長儿倒。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么汞幢? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮仲智,結(jié)果婚禮上钓辆,老公的妹妹穿的比我還像新娘前联。我一直安慰自己似嗤,他們只是感情好双谆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布顽馋。 她就那樣靜靜地躺著,像睡著了一般熊痴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上系谐,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天晾匠,我揣著相機(jī)與錄音凉馆,去河邊找鬼亡资。 笑死锥腻,一個(gè)胖子當(dāng)著我的面吹牛旷太,可吹牛的內(nèi)容都是我干的供璧。 我是一名探鬼主播睡毒,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼供搀,長吁一口氣:“原來是場噩夢啊……” “哼钠至!你這毒婦竟也來了棉钧?” 一聲冷哼從身側(cè)響起宪卿,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤西疤,失蹤者是張志新(化名)和其女友劉穎代赁,沒想到半個(gè)月后管跺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豁跑,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了快集。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乖寒。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖珍逸,靈堂內(nèi)的尸體忽然破棺而出谆膳,到底是詐尸還是另有隱情摹量,我是刑警寧澤馒胆,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站型雳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜朴则,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撤蚊。 院中可真熱鬧侦啸,春花似錦光涂、人聲如沸顶捷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缺厉。三九已至,卻和暖如春提针,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饲宛。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國打工艇抠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留幕庐,地道東北人异剥。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓絮重,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疚沐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子潮模,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354