大資料開發高階之HBase開發例項介紹

2021-07-23 22:59:14 字數 3027 閱讀 4632

這周學習了hbase的開發例項,主要有一些hbase api的使用。(文中的**,是經過實際執行有效的,只擷取片段,關於全部的可參考前一篇文章中全域性變數的設定,關於執行環境也與前一篇一樣)

在原有的value中追加值,即在其後追加值,例如原有value為a,追加b之後value值為ab

//追加資料

catch (ioexception e)

}

執行之前資料

rowkey1              column=column1:name, timestamp=1477141062736, value=aaa 

執行之後資料

rowkey1              column=column1:name, timestamp=1477141062736, value=aaa123

檢查是否有符合某個條件的值,有的話則插入資料,這裡的插入是會替換原有的值。

//檢查符合某一條件則插入資料

public static void checkandputdata(string tablename)

catch (ioexception e)

}

結果如下:插入之前值為ccc,插入之後值為ddd

檢查是否有符合某個條件的值,有的話則刪除某一行。

//檢查符合某一條件則刪除資料

public static void checkanddeletedata(string tablename)

catch (ioexception e)

}

執行後的結果如下

用於實時收集資訊,如點贊之類的。0代表獲取當前值,正數則加,負數則減。

//計數器

public static void incrementcolumn(string tablename)

catch (ioexception e)

}

rowkey過濾器主要對rowkey進行過濾,通過條件的設定獲得想要的行列。一般情況下不太使用filter,因為會降低執行的效率。

以下為**的示例,其中rowfilter的條件設定為equal(相等),還可設定為not_equal(不等於),greater_or_equal(大於或等於)等一些值,如果滿足條件,則輸出。

比較器使用的是binarycomparator,全字元比較,匹配完整的字元。

還有以下幾種:

binaryprefixcomparator     匹配位元組陣列字首 

bitcomparator

nullcomparator

regexstringcomparator 正規表示式匹配

substringcomparator 子串匹配

setcacheblocks 設定獲取的資料是否存在於記憶體中,一般設定為false,提高hbase查詢的效能

//rowkey過濾器

public static void rowkeyfilter(string tablename)

}} catch (ioexception e)

}

執行之前的study-habse如下:

執行之後的結果如下:

qualifierfilter是基於列(column)的比較,與rowkey相似,與此相似的還有familyfilter,基於列族的比較。一般qualifier比family較常用。

quaiifierfilter對大小寫敏感。

這裡就不舉例了。

filterlist 過濾器鏈,它包含一組滿足於條件的資料。引數有filterlist.operator.must_pass_all 和filterlist.operator.must_pass_one 兩種,表達形式如下:

filterlist list = new filterlist(filterlist.operator.must_pass_one);   //資料只要滿足一組過濾器中的乙個就可以

filterlist list = new filterlist(filterlist.operator.must_pass_all); //資料必須滿足所有過濾器

預設為must_pass_all

singlecolumnvaluefilter  列值過濾器 過濾列值是否滿足於某個條件的

setfilterifmissing可設定為true或者false,其意義在於若符合我們設定的某一列值本身不存在,則是否過濾掉。

設定為true,則過濾掉;設定為false,則不過濾掉。預設為false

以下例子為filterlist和singlecolumnvalunfilter結合使用

public static void filterlist(string tablename)

}} catch (ioexception e)

}

使用的tablename為study-habse1,表中的資料如下:

執行之後,結果如下,獲取列值在20到30之間的行

大資料開發之scala操作hbase的工具類

org.apache.hbase hbase client 1.2.1 org.apache.hbase hbase common 1.2.1 注意 匯入依賴的版本號要與集群的hbase版本號一致 否則會不相容報錯從hbase集群的conf資料夾將hbase site.xml拷貝到工程的resour...

大資料開發

職業要求 大資料概述 大資料處理架構hadoop 分布式檔案系統hdfs 分布式資料庫hbase nosql資料庫 雲資料庫 mapreduce 基於hadoop的資料倉儲hive hadoop架構再 spark 流計算圖計算 大資料在不同領域的應用 666666 大資料技術概述 spark的設計與...

大資料開發之kafka安裝

安裝kafka前需要安裝zookeeper,參考 二 解壓安裝包 root hlh001 software tar zxvf kafka 2.11 0.11.0.0.tgz c opt module 三 修改解壓後的名稱 root hlh001 module mv kafka 2.11 0.11.0...