? ? ? ?以后很長一段時(shí)間會(huì)負(fù)責(zé)關(guān)于hbase的工作饲做,所以開始看hbase源碼了逼纸,本來想通過jar2uml這類工具來弄出hbase的uml圖嗅蔬,但是效果不是很好。后來仔細(xì)想想hbase這么大的工程菇用,還有關(guān)于maven的引用澜驮,如果強(qiáng)行將所有類都畫到一張uml圖的話,也實(shí)在是不太現(xiàn)實(shí)惋鸥。所以覺得還是只能通過用例杂穷,來一點(diǎn)點(diǎn)看hbase源碼內(nèi)部究竟是如何運(yùn)作的吧。
? ? ? 簡(jiǎn)單的列舉了一下能夠想到的hbase用例揩慕,打算盡量一個(gè)星期能夠簡(jiǎn)單的把跟一個(gè)用例有關(guān)的源代碼過一遍:
master/regionserver 啟停過程
RPC 過程
create/disable/enable/drop 過程
put/delete/get/scan 過程
WAL 寫過程
region 恢復(fù)過程(WAL讀過程)
memstore 寫入過程
compact 過程
split 過程
region 分配過程
replication 過程
snapshot 過程
? ? ? 市面上已經(jīng)有很多關(guān)于hbase 1.0之前版本的書籍了亭畜,但是除了官方文檔真的沒有發(fā)現(xiàn)什么跟1.0版本以及之后版本相關(guān)的書扮休,所以打算針對(duì)hbase-1.0.0的版本迎卤,看一下上面一些用例的代碼。由于現(xiàn)在對(duì)hbase的了解主要也是集中在0.9*的版本玷坠,所以上述列舉的用例難免有疏漏或者冗余之處蜗搔,以后應(yīng)該會(huì)有更新。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2017.03.31
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?雖然明天是愚人節(jié)八堡,但是看hbase源碼可不是開玩笑