HBASE讀書(shū)筆記-基礎(chǔ)功能
- HBASE的SHELL命令使用
- HBASE的JAVA CLIENT的使用
新增和修改記錄用PUT。
PUT的執(zhí)行流程:
首先會(huì)在內(nèi)存中增加MEMSTORE,如果這個(gè)表有N個(gè)COLOUMN FAMILY,則會(huì)產(chǎn)生N個(gè)MEMSTORE,記錄中的值屬于不同的COLOUMN FAMILY的,會(huì)保存到不同的MEMSTORE中。MEMSTORE中的值不會(huì)馬上FLUSH到文件中,而是到MEMSTORE滿的時(shí)候再FLUSH,且FLUSH的時(shí)候不會(huì)寫(xiě)入已存在的HFILE中,而是新增一個(gè)HFILE去保存。另外會(huì)寫(xiě)WRITE AHEAD LOG,這是由于新增記錄時(shí)不是馬上寫(xiě)入HFILE的,如果中途出現(xiàn)DOWN機(jī)時(shí),則HBASE重啟時(shí)會(huì)根據(jù)這個(gè)LOG來(lái)恢復(fù)數(shù)據(jù)。
刪除記錄用DELETE。
刪除時(shí)并不會(huì)將在HFILE中的內(nèi)容刪除,而是作一標(biāo)記,然后在查詢(xún)的時(shí)候可以不取這些記錄。
讀取單條記錄用GET。
讀取的時(shí)候會(huì)將記錄保存到CAHE中,同樣如果這個(gè)表有N個(gè)COLOUMN FAMILY,則會(huì)產(chǎn)生N個(gè)CAHE
,記錄中的值屬于不同的COLOUMN FAMILY的,會(huì)保存到不同的CAHE中。這樣下次客戶端再取記錄時(shí)會(huì)綜合CAHE和MEMSTORE來(lái)返回?cái)?shù)據(jù)。
新增表用HADMIN。
查詢(xún)多條記錄用SCAN和FILTER。
- HBASE的分布式計(jì)算
為什么會(huì)有分布式計(jì)算
前面的API是針對(duì)ONLINE的應(yīng)用,即要求低延時(shí)的,相當(dāng)于OLTP。而針對(duì)大量數(shù)據(jù)時(shí)這些API就不適用了。
如要針對(duì)全表數(shù)據(jù)進(jìn)行分析時(shí)用SCAN,這樣會(huì)將全表數(shù)據(jù)取回本地,如果數(shù)據(jù)量在100G時(shí)會(huì)耗幾個(gè)小時(shí),為了節(jié)省時(shí)間,引入多線程做法,但要引入多線程時(shí),需遵從新算法:將全表數(shù)據(jù)分成N個(gè)段,每段用一個(gè)線程處理,處理完后,交結(jié)果合成,然后進(jìn)行分析。
如果數(shù)據(jù)量在200G或以上時(shí)間就加倍了,多線程的方式不能滿足了,因此引入多進(jìn)程方式,即將計(jì)算放在不同的物理機(jī)上處理,這時(shí)就要考慮每個(gè)物理機(jī)DOWN機(jī)時(shí)的處理方式等情況了,HADOOP的MAPREDUCE則是這種分布式計(jì)算的框架了,對(duì)于應(yīng)用者而言,只須處理分散和聚合的算法,其他的無(wú)須考慮。
HBASE的MAPREDUCE
使用TABLEMAP和TABLEREDUCE。
HBASE的部署架構(gòu)和組成的組件
架構(gòu)在HADOOP和ZOOPKEEPER之上。
HBASE的查詢(xún)記錄和保存記錄的流程
說(shuō)見(jiàn)前一編博文。
HBASE作為數(shù)據(jù)來(lái)源地、保存地和共享數(shù)據(jù)源的處理方式
即相當(dāng)于數(shù)據(jù)庫(kù)中JOIN的算法:REDUCE SIDE JOIN、MAP SIDE JOIN。
posted on 2013-02-06 09:53 paulwong 閱讀(615) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): HADOOP 、云計(jì)算 、HBASE