HBase入門詳解(三)

2021-08-28 10:28:48 字數 2985 閱讀 6468

環境:centos7+hadoop3.0.3+hbase2.0.1+jdk8

例項:統計行鍵並新增到指定列族

public class rowcountmr extends configured implements tool 

@override

public int run(string args) throws exception

@override

protected void map(immutablebyteswritable key, result value, context context) throws ioexception, interruptedexception

}// 建立reducer類繼承tablereducer

public static class rcreducer extends tablereducer

// 建立put物件並指定行健

put put = new put(bytes.tobytes("xj"));

// 新增資料資訊,列族,列名,值

put.addcolumn(bytes.tobytes("info"), bytes.tobytes("count"), bytes.tobytes(""+l));

// 輸出的value是mutation型別的

context.write(key, put);}}

}

簡介:

r - 代表讀取許可權

w - 代表寫許可權

x - 代表執行許可權

c - 代表建立許可權

a - 代表管理許可權

配置許可權

修改配置檔案hbase-site.xml

新增內容

hbase.superuser

hbase

hbase.coprocessor.region.classes

org.apache.hadoop.hbase.security.access.accesscontroller

hbase.coprocessor.master.classes

org.apache.hadoop.hbase.security.access.accesscontroller

hbase.rpc.engine

org.apache.hadoop.hbase.ipc.securerpcengine

hbase.security.authorization

true

授予許可權

給使用者』hbasetest』授予所有許可權

grant 'hbasetest','rwxca'撤銷許可權

撤銷使用者』hbasetest』所有許可權

revoke 'hbasetest'列出指定表的許可權

列出表』student』的所有許可權

user_permission 'student'可配置的資料塊大小

hfile資料塊大小可以放在列族層次設定,本質和hdfs資料塊不是一回事,是在hbase內部,把hfile劃分成了塊,預設大小是64k。每個資料塊都會將索引值放入hfile中,塊越小那麼資料小,hfile中索引值越多占用容量越大,帶來的效果是隨機訪問效能更好。如果每個資料塊體積變大,那麼hfile中索引值占用容量越小,能讓更多的資料載入進入記憶體,從而提高順序訪問效能。

create 『mytable』,

資料塊快取

把資料放進讀快取裡並不一定能提高效率,比如,一張表或者表中的列族,只是偶爾進行get和scan,那麼有無此快取功能都無所謂,並不會提高效率。此外,再比如,如果一張表或者表中的列族,高頻率的進行scan操作,那麼會造成快取濫用的情況,很有可能把真正能提高效能的資料排擠出快取。為了避免上述情況發生,可以關閉快取功能,快取功能預設是開啟的。

create 『mytable』,

激進快取

可以選擇一些列族,賦予他們在資料塊快取中有更高的優先順序,從而可以提高他們被快取的概率,以及減小被從快取中刪除的概率。要注意此屬性,除了讓此列族比其他列族更激進外無其他特殊功能。預設值為false

create 『mytable』,

布隆過濾器

布隆過濾器允許對儲存在每個資料塊的資料做乙個反向測試,當某行被請求時,先檢查布隆過濾器,看看該行在不在這個資料塊中,返回結果不在或者 不確定在不在,那麼可以減少訪問block的次數,從而提高隨機訪問的效率

布隆過濾器會占用額外的記憶體空間,並且隨著表資料的增長而增長,當空間不是問題時,在資料量較大的情況下,布隆過濾器的效能尤為突顯。

create 『mytable』,

row只針對rowkey進行過濾,get提高效率,scan無影響

rowcol指既針對rowkey也針對qualifier進行過濾,get提高效率, scan看情況,如果scan有針對列名在操作則提高效率,如果沒有則無影響

生存時間

早於ttl值所指定時間的資料,會在下一次大合併時會被刪除。在同乙個單元上的多個時間版本的資料也生效。 可以禁用,也可以設定值為int.max_value 即永遠啟用,單位:秒。

create 『mytable』,

簡介:hbase變成資料處理工具

處理資料的壓力放在伺服器端

給hbase新增新的行為

observer

observer類似於傳統資料庫中的觸發器,當發生某些事件的時候這類協處理器會被server端呼叫。observer coprocessor 就是一些散布在hbaseserver端**中的hook鉤子,在固定的事件發生時被呼叫。比如:put操作之前有鉤子函式preput,該函式在put操作執行前會被regionserver呼叫;在put操作之後則有postput鉤子函式

endpoint

endpoint協處理器類似傳統資料庫中的儲存過程,客戶端可以呼叫這些 endpoint協處理器執行一段server端**,並將server端**的結果返回給客戶端進一步處理,最常見的用法就是進行聚合操作。

產生原因

解決方案

大資料入門 HBase資料模型詳解

hbase作為hadoop生態當中的nosql資料庫,基於hdfs去完成實際的資料儲存任務,高效能是得到普遍的認可的。而hbase在儲存上的高效能,與自身的資料模型設計有很大的關係。今天的大資料入門分享,我們就來講講,hbase資料模型的相關知識。根據定義,我們知道hbase是乙個支援分布式的列式資...

Hbase 入門簡介

hbase是apache hadoop中的乙個子專案,hbase依託於hadoop的hdfs作為最基本儲存基礎單元,通過使用hadoop的dfs工具就可以看到這些這些資料 儲存資料夾的結構,還可以通過map reduce的框架 演算法 對hbase進行操作,如下圖所示 hbase在產品中還包含了je...

hbase 命令入門

1.建立表 create student name address 新建student表,該錶有兩列 名稱和位址,名稱只有乙個,address可以有多個,create dirktest 2.插入一條記錄,只能插入某列 put student 1 name tom 向student有中插入記錄,記錄的...