故障排除和調(diào)試HBase:NameNode

2018-10-31 14:31 更新

NameNode

有關(guān)NameNode的更多信息,請參閱HDFS。

表和區(qū)域的HDFS利用率

要確定HBase在HDFS上使用的空間大小,請使用NameNode中的hadoop shell命令。例如:

hadoop fs -dus /hbase/

返回所有HBase對象的總磁盤利用率。

hadoop fs -dus /hbase/myTable

返回HBase表'myTable'的總磁盤利用率。

hadoop fs -du /hbase/myTable

...返回HBase表'myTable'下的區(qū)域列表及其磁盤利用率。

有關(guān)HDFS shell命令的更多信息,請參閱HDFS FileSystem Shell文檔。

瀏覽HBase對象的HDFS

有時需要探索HDFS上存在的HBase對象。這些對象可能包括WAL(預(yù)寫日志),表,區(qū)域,StoreFiles等。最簡單的方法是使用運(yùn)行在端口50070上的NameNode Web應(yīng)用程序。NameNode Web應(yīng)用程序?qū)⑻峁┲赶蚣褐兴蠨ataNode的鏈接,以便可以無縫瀏覽它們。

集群中HBase表的HDFS目錄結(jié)構(gòu)是:

/hbase
    /data
        /<Namespace>                    (Namespaces in the cluster)
            /<Table>                    (Tables in the cluster)
                /<Region>               (Regions for the table)
                    /<ColumnFamily>     (ColumnFamilies for the Region for the table)
                        /<StoreFile>    (StoreFiles for the ColumnFamily for the Regions for the table)

HBase WAL的HDFS目錄結(jié)構(gòu)是:

/hbase
    /WALs
        /<RegionServer>    (RegionServers)
            /<WAL>         (WAL files for the RegionServer)

大小為零的WALs,其中包含數(shù)據(jù)

問題:獲取RegionServer的WALs目錄中的所有文件的列表時,一個文件的大小為0,但它包含數(shù)據(jù)。

答:這是HDFS的特殊情況。當(dāng)前正在寫入的文件的大小似乎為0,但一旦關(guān)閉,它將顯示其真實(shí)大小。

用例

用于查詢HBase對象的HDFS的兩個常見用例是研究表的未壓縮程度。如果每個ColumnFamily都有大量StoreFiles,則表明需要進(jìn)行主要壓縮。此外,在進(jìn)行主要壓縮后,如果生成的StoreFile為“small”,則表明需要減少表的ColumnFamilies。

意外的文件系統(tǒng)增長

如果您看到HBase意外地增加了文件系統(tǒng)的使用,兩個可能的原因是快照和WAL。

快照

創(chuàng)建快照時,HBase會保留在快照時重新創(chuàng)建表狀態(tài)所需的一切。這包括已刪除的單元格或過期版本。因此,您應(yīng)該精心規(guī)劃快照的使用模式,并且應(yīng)該修剪不再需要的快照。快照存儲在/hbase/.hbase-snapshot中,用于還原快照所需的存檔位于/hbase/archive/<_tablename_>/<_region_>/<_column_family_>/。

*不要*通過HDFS手動管理快照或存檔。HBase提供API和
用于管理它們的HBase Shell命令。有關(guān)更多信息,請參閱<< ops.snapshots >>。
WAL

預(yù)寫日志(WAL)存儲在HBase根目錄的子目錄中,通常是/hbase/,具體取決于它們的狀態(tài)。已經(jīng)處理好的WALs存儲在/hbase/oldWALs/并且損壞的WAL存儲在/hbase/.corrupt/中,以供檢查。如果其中一個子目錄的大小正在增長,請檢查HBase服務(wù)器日志以找出未正確處理WAL的原因。

如果您使用復(fù)制并且/hbase/oldWALs/使用的空間超出預(yù)期,請記住,只要存在對等項(xiàng),復(fù)制被禁用時就會保存WAL。

不要通過HDFS手動管理WAL。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號