環境: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有中插入記錄,記錄的...