1. 程式人生 > >HBase scan shell操作詳解

HBase scan shell操作詳解

建立表 create 'test1', 'lf', 'sf' lf: column family of LONG values (binary value) -- sf: column family of STRING values 匯入資料 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' 一個使用者(userX),在什麼時間(tsX),作為rowkey 對什麼產品(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 通過廣告點選進來的(column為c2)值包含88的使用者 scan 'test1', FILTER=>"ColumnPrefixFilter('c2') AND ValueFilter(=,'substring:88')" ROW COLUMN+CELL user2|ts5 column=sf:c2, timestamp=1409122355030, value=sku288 通過搜尋進來的(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: 一個rowkey可以有多個version,同一個rowkey的同一個column也會有多個的值, 只拿出key中的第一個column的第一個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以user1開頭的 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以user2開頭 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 查詢rowkey裡面包含ts3的 import org.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 查詢rowkey裡面包含ts的 import org.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 加入一條測試資料 put 'test1', 'user2|err', 'sf:s1', 'sku999' 查詢rowkey裡面以user開頭的,新加入的測試資料並不符合正則表示式的規則,故查詢不出來 import org.apache.hadoop.hbase.filter.RegexStringComparator import org.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 加入測試資料 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的 import org.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 scan shell操作

建立表 create 'test1', 'lf', 'sf' lf: column family of LONG values (binary value) -- sf: column family of STRING values 匯入資料 put 'test1', 'user1|ts1', 'sf:c

HBase基本資料操作【完整版,絕對精品】

引言 之前詳細寫了一篇HBase過濾器的文章,今天把基礎的表和資料相關操作補上。 本文件參考最新(截止2014年7月16日)的官方Ref Guide、Developer API編寫。 所有程式碼均基於“hbase 0.96.2-hadoop2”版本編寫,均實測通過。 歡迎轉載

【甘道夫】HBase基本資料操作【完整版,絕對精品】

hbase(main):014:0> describe 'rd_ns:itable' DESCRIPTION                                                                                              

HBase資料庫安裝之shell命令

關係型資料庫RDBMS:具有“表”模型結構,表與表之間存在著關係事物:一致性  隔離性  原子性  永續性MySQL開源:免費支援標準SQL語句資料量:10WOarcle:收費資料量:海量SqlServer微軟,收費提供一個圖形介面的管理平臺特點:都支援結構化查詢語言非關係型資料庫HBase、MongoDB、

MongoDB增刪改查操作

添加多個 負數 指定 cal lib 定位 也會 pan str 一、插入 MongoDB的插入操作很簡單,使用insert方法,這裏演示從創建數據庫、創建集合到插入文檔、查詢文檔。 集合創建方法參數說明: size:集合最大空間 max:集合最多文檔數量 (超出si

Git遠程操作

命令使用 eight conf 分支 master 選項 pull pru ase 一、git clone git clone <版本庫網站> git clone https://github.com/jquery/jquery.git 克隆jQuery的版

【轉】 C語言文件操作

pri void rfi 識別 archive format 隨機 stat 文本文 轉自:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html C語言中沒有輸入輸出語句,所有的輸入輸出功能都用

JMeter數據庫操作

idt .cn username logs word api family -1 用戶名 Jmeter提供了JDBC連接的插件,通過執行SQL語句的java API,實現對數據庫的訪問和查詢。 一、安裝驅動包   將需要連接JDBC的jar包放入jmeter安裝文件的lib

DNS基本概念及操作----------------轉載

dns介紹 DNS基本概念及操作詳解目錄:1.DNS協議2.DNS查詢 2.1遞歸查詢 2.2跌代查詢 2.3反向查詢3.域維護 3.1全量AXFR傳輸 3.2增量IXFR傳輸 3.3通過NOTIFY 3.4動態更新4.DNS安全 在很多人看來,DNS只是為外部提供DNS解析服務(我以前也是這麽認為

(轉載)Resize Instance 操作

可能 compute api 消息 confirm 詳細分析 tin 相同 .cn (轉載)Resize Instance 操作詳解 - 每天5分鐘玩轉 OpenStack(41) 原文路徑:https://www.cnblogs.com/CloudMan6/p/55482

VB ListView控件各種操作

auto .com 設置 查看 右鍵 src 行為 ade 在線 VB ListView控件各種操作詳解 [vb] view plaincopy Private Sub Form_Load() ‘ListView1.SmallIcon

SQL Server2008及以上 表分區操作

value 詳細 分享 指令 pos 分割 分區方案 別了 分區   1. 創建分區函數   2. 創建分區方案   3. 對表進行分區   下面將對每個步驟進行詳細介紹。   步驟一:創建一個分區函數   此分區函數用於定義你希望SQL Server如何對數據進行分

Git遠程操作(新手必備)

tar etc rename 也有 mas 本地文件 轉載 其中 efault Git是目前最流行的版本管理系統,學會Git幾乎成了開發者的必備技能。 Git有很多優勢,其中之一就是遠程操作非常簡便。本文詳細介紹5個Git命令,它們的概念和用法,理解了這些內容,你就會完全掌

C語言學習系列——文件讀寫操作

記錄 源程序 8.4 lib 令行 stdio.h 空串 表示 參數 當文件按指定的工作方式打開以後,就可以執行對文件的讀和寫。下面按文件的性質分類進行操作。針對文本文件和二進制文件的不同性質,對文本文件來說,可按字符讀寫或按字符串讀寫;對二進制文件來說,可進行

linux零基礎學習之Linux sed 命令常用操作

延伸 進行 數據 12px -i 空白 字符串 options 信息 sed是Linux系統中一個很好的文件處理工具,可以對數據進行替換、刪除、新增以及選取等操作,使用起來也十分方面,以下是全面的sed操作介紹。sed命令行格式:sed [options] 'com

磁盤調度算法FCFS、SSTF、SCAN、CSCAN

磁盤調度算法 Java實現 常見的磁盤調度算法有:1.FCFS:先來先服務算法;2.SSTF:最短尋道時間算法;3.SCAN:掃描算法(也叫電梯調度算法);4.CSCAN:循環掃描算法 算法的詳細介紹:FCFS:算法思想非常簡單,就是不論初始磁頭在什麽位置,都是按照服務隊列的先後順序依次處理進程,可以

二叉搜索樹的刪除操作(BST)

子節點 沒有 解釋 找到 bst 左右 直接 元素 改變 一、思想:分類討論 二、二叉搜索樹的刪除操作具體討論分如下四種情況:(記我們要刪除的節點為D) 1、如果D節點既沒有左孩子,也沒有右孩子,那麽直接刪除就好了; 2、如果D節點只有左孩子,沒有右孩子,那麽只

Java 常用IO流操作

字符集 -s fileinput 顯式 print OS 數值 重寫 目錄 1.基本概念 IO:Java對數據的操作是通過流的方式,IO流用來處理設備之間的數據傳輸,上傳文件和下載文件,Java用於操作流的對象都在IO包中。 2.IO流的分類 圖示:(主要IO流)

python 字典操作

python字典操作 字典一種key – value 的數據類型,使用就像我們上學用的字典,通過筆劃、字母來查對應頁的詳細內容。 語法: info ={ ‘stu1001‘:"TengLan Wu", ‘Stu1002‘:"Longze Loula", ‘stu1103‘:"XiaoZ

C# 字符串操作

字符串操作 .get pan class line IV alt har 串操作 1、字符串轉字符數組 (1)、ToCharArray()方法,源碼如下: 調用代碼: var str = "Hello World"; //將字符串轉換成字符數組 var result =