HBase基礎知識

2021-07-25 10:43:50 字數 2900 閱讀 3100

hdfs://myha01/hbase

hbase.cluster.distributed

true

hbase.zookeeper.quorum

hadoop02:2181,hadoop03:2181,hadoop04:2181

htable表(table)

htabledescriptor列族(column family)

put列修飾符(column qualifier)

getscanner

// 宣告靜態配置

static configuration conf = null;

private static final string zk_connect_str = "hadoop01:2181,hadoop02:2181,hadoop03:2181,hadoop04:2181,hadoop05:2181";

static

public static void main(string args) throws exception ;  

htable table = new htable(conf, tablename);  

filter filter = new pagefilter(3);  

byte lastrow = null;  

int totalrows = 0;  

while (true)  

resultscanner scanner = table.getscanner(scan);  

int localrows = 0;  

result result;  

while((result = scanner.next()) != null)  

scanner.close();  

if(localrows == 0) break;  

}  system.out.println("total rows:" + totalrows);  

}/**

* 多種過濾條件的使用方法

* @throws exception

*/@test

public void testscan() throws exception{

htable table = new htable(conf, "person".getbytes());

scan scan = new scan(bytes.tobytes("person_zhang_000001"), bytes.tobytes("person_zhang_000002"));

//字首過濾器----針對行鍵

filter filter = new prefixfilter(bytes.tobytes("person"));

//行過濾器  ---針對行鍵

bytearraycomparable rowcomparator = new binarycomparator(bytes.tobytes("person_zhang_000001"));

rowfilter rf = new rowfilter(compareop.less_or_equal, rowcomparator);

rf = new rowfilter(compareop.equal , new substringcomparator("_2016-12-31_"));

//單值過濾器1完整匹配位元組陣列

new singlecolumnvaluefilter("base_info".getbytes(), "name".getbytes(), compareop.equal, "zhangsan".getbytes());

//單值過濾器2 匹配正規表示式

bytearraycomparable comparator = new regexstringcomparator("zhang.");

new singlecolumnvaluefilter("info".getbytes(), "name".getbytes(), compareop.equal, comparator);

//單值過濾器3匹配是否包含子串,大小寫不敏感

comparator = new substringcomparator("wu");

new singlecolumnvaluefilter("info".getbytes(), "name".getbytes(), compareop.equal, comparator);

//鍵值對元資料過濾-----family過濾----位元組陣列完整匹配

familyfilter ff = new familyfilter(compareop.equal , 

new binarycomparator(bytes.tobytes("base_info"))   //表中不存在inf列族,過濾結果為空

);//鍵值對元資料過濾-----family過濾----位元組陣列字首匹配

ff = new familyfilter(

compareop.equal , 

new binaryprefixcomparator(bytes.tobytes("inf"))   //表中存在以inf打頭的列族info,過濾結果為該列族所有行

);//鍵值對元資料過濾-----qualifier過濾----位元組陣列完整匹配

filter = new qualifierfilter(

compareop.equal , 

new binarycomparator(bytes.tobytes("na"))   //表中不存在na列,過濾結果為空

);filter = new qualifierfilter(

compareop.equal , 

new binaryprefixcomparator(bytes.tobytes("na"))   //表中存在以na打頭的列name,過濾結果為所有行的該列資料

);

HBase基礎知識

hbase的主要客戶端介面是由org.apache.hadoop.hbase.client包中的htable類提供的,通過該類,使用者可以完成向hbase儲存和檢索資料,以及刪除無效資料之類的操作。所有修改資料的操作都保證了行級別的原子性,寫操作中涉及的列的數目不會影響該行資料的原子性,行原子性會同...

HBase基礎知識

hbase官網 學習 hbase是乙個建立在hadoop檔案系統之上的分布式的 面向列的開源資料庫,源於google的一篇 bigtable 乙個結構化資料的分布式儲存系統 hbase是google bigtable的開源實現,它利用hadoop hdfs作為其檔案儲存系統,利用hadoop map...

HBase基礎知識

1.hbase簡介 hbase hadoop database,是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。hbase利用hadoop hdfs作為其檔案儲存系統,利用hadoop mapreduce來處理hbas...