Hadoop平臺搭建與應用(第2版)(微課版)-課后習題及答案 項目4_第1頁
Hadoop平臺搭建與應用(第2版)(微課版)-課后習題及答案 項目4_第2頁
Hadoop平臺搭建與應用(第2版)(微課版)-課后習題及答案 項目4_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Hadoop平臺搭建與應用項目2Hive環(huán)境搭建與基本操作PAGE68PAGE69HRegionServer宕機如何處理?(1)ZooKeeper會監(jiān)控HRegionServer的上下線情況,當ZK發(fā)現(xiàn)某個HRegionServer宕機之后會通知HMaster進行失效備援;(2)該HRegionServer會停止對外提供服務,就是它所負責的region暫時停止對外提供服務;(3)HMaster會將該HRegionServer所負責的region轉(zhuǎn)移到其他HRegionServer上,并且會對HRegionServer上存在內(nèi)存中還未持久化到磁盤中的數(shù)據(jù)進行恢復;(4)這個恢復的工作是由WAL重播來完成,這個過程如下:①WAL實際上就是一個文件,存在/hbase/WAL/對應RegionServer路徑下。②宕機發(fā)生時,讀取該RegionServer所對應的路徑下的WAL文件,然后根據(jù)不同的region切分成不同的臨時文件recover.edits。③當region被分配到新的RegionServer中,RegionServer讀取region時會進行判斷是否存在recover.edits,如果存在則進行恢復。2.請描述HBase讀寫流程?(1)讀操作如下:①HRegionServer保存著Meta表以及表數(shù)據(jù),要訪問表數(shù)據(jù),首先Client先去訪問Zookeeper,從Zookeeper里面獲取Meta表所在的位置信息,即找到這個Meta表在哪個HRegionServer上保存著。②接著Client通過剛才獲取到的HRegionServer的IP來訪問Meta表所在的HRegionServer,從而讀取到Meta,進而獲取到Meta表中存放的元數(shù)據(jù)。③Client通過元數(shù)據(jù)中存儲的信息,訪問對應的HRegionServer,然后掃描所在HRegionServer的Memstore和Storefile來查詢數(shù)據(jù)。④最后HRegionServer把查詢到的數(shù)據(jù)響應給Client。(2)寫操作如下:①Client先訪問Zookeeper,找到Meta表,并獲取Meta表元數(shù)據(jù)。②確定當前將要寫入的數(shù)據(jù)所對應的HRegion和HRegionServer服務器。③Client向該HRegionServer服務器發(fā)起寫入數(shù)據(jù)請求,然后HRegionServer收到請求并響應。④Client先把數(shù)據(jù)寫入到HLog,以防止數(shù)據(jù)丟失。⑤然后將數(shù)據(jù)寫入到Memstore。⑥如果HLog和Memstore均寫入成功,則這條數(shù)據(jù)寫入成功⑦如果Memstore達到閾值,會把Memstore中的數(shù)據(jù)Flush到Storefile中。⑧當Storefile越來越多,會觸發(fā)Compact合并操作,把過多的Storefile合并成一個大的Storefile。⑨當Storefile越來越大,Region也會越來越大,達到閾值后,會觸發(fā)Split操作,將Region一分為二。3.如何提高HBase客戶端的讀寫性能?(1)開啟Bloomfilter過濾器,開啟Bloomfilter比沒開啟要快得多。(2)HBase對于內(nèi)存有特別的需求,在硬件允許的情況下配足夠多的內(nèi)存給它(3)通過修改hbase-env.sh中的exportHBASE_HEAPSIZE=3000#默認為1000(4)增大RPC數(shù)量通過修改hbase-site.xml中的hbase.regionserver.handler.count屬性,可以適當?shù)姆糯驲PC數(shù)量,默認值為10有點小。請描述HBase實時查詢的原理。實時查詢,可以認為是從內(nèi)存中查詢,HBase的機制是數(shù)據(jù)先寫入到內(nèi)存中,當數(shù)據(jù)量達到一定的量(如128M),再寫入磁盤中,在內(nèi)存中,是不進行數(shù)據(jù)的更新或合并操作的,只增加數(shù)據(jù),這使得用戶的寫操作只要進入內(nèi)存中就可以立即返回,保證了HBaseI/O的高性能。HBase如何導入數(shù)據(jù)?(1)通過HBaseAPI進行批量寫入數(shù)據(jù);(2)使用Sqoop工具批量導數(shù)到HBase集群;(3)使用MapReduce批量導入:通常MapReduce在寫HBase時使用的是TableOutputFormat方式,在Reduce中直接生成Put對象寫入HBase。(4)HBaseBulkLoad的方式:利用HBase數(shù)據(jù)按照HFile格式存儲在HDFS的原理,使用Mapreduce直接生成HFile格式文件后,RegionServers再將HFile文件移動到相應的Region目錄下。6.請描述HBase的存儲結(jié)構(gòu)?HBase中的每張表都通過行鍵(RowKey)按照一定的范圍被分割成多個子表(HRegion),默認一個HRegion超過256M就要被分割成兩個,由HRegionServer管理,HRegionServer管理哪些HRegion由Hmaster分配。HRegion存取一個子表時,會創(chuàng)建一個HRegion對象,然后對表的每個列族(ColumnFamily)創(chuàng)建一個Store實例,每個Store都會有0個或多個StoreFile與之對應,每個StoreFile都會對應一個HFile,HFile就是實際的存儲文件,因此,一個HRegion還擁有一個MemStore實例。7.HBase適用于怎樣的情景?(1)半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)對于數(shù)據(jù)結(jié)構(gòu)字段不夠確定或雜亂無章很難按一個概念去進行抽取的數(shù)據(jù)適合用HBase。2)記錄非常稀疏RDBMS的行有多少列是固定的,為Null的列浪費了存儲空間。而HBase為Null的Column不會被存儲,這樣既節(jié)省了空間又提高了讀性能。3)多版本數(shù)據(jù)根據(jù)Rowkey和Columnkey定位到的Value可以有任意數(shù)量的版本值,因此對于需要存儲變動歷史記錄的數(shù)據(jù),用HBase就非常方便了。業(yè)務上一般只需要最新的值,但有時可能需要查詢到歷史值。4)超大數(shù)據(jù)量當數(shù)據(jù)量越來越大,RDBMS數(shù)據(jù)庫撐不住了,就出現(xiàn)了讀寫分離策略,通過一個Master專門負責寫操作,多個Slave負責讀操作,服務器成本倍增。隨著壓力增加,Master撐不住了,這時就要分庫了,把關(guān)聯(lián)不大的數(shù)據(jù)分開部署,一些join查詢不能用了,需要借助中間層。隨著數(shù)據(jù)量的進一步增

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論