Hadoop的fsck工具

來源:互聯網
上載者:User

HDFS支援fsck命令用以檢查各種不一致。fsck用以報告各種檔案問題,如block丟失或缺少block等。fack命令用法如下:

bin/hadoop fsck [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]

<path>        檢查的起始目錄

-move        將損壞的檔案移動到/lost+found下面

-delete        刪除損壞的檔案

-openforwrite    列印出正在寫的檔案

-files        列印出所有被檢查的檔案

-blocks        列印出block報告

-locations    列印出每個block的位置

-racks        列印出datanode的網路拓撲結構

預設情況下,fsck會忽略正在寫的檔案,使用-openforwrite選項可以彙報這種檔案。

 

下面是用命令列在一個測試叢集上執行fsck後的結果:

.......Status: HEALTHY

Total size: 32454532 B

Total dirs: 17

Total files: 7

Total blocks (validated): 7 (avg. block size 4636361 B)

Minimally replicated blocks: 7 (100.0 %)

Over-replicated blocks: 0 (0.0 %)

Under-replicated blocks: 0 (0.0 %)

Mis-replicated blocks: 0 (0.0 %)

Default replication factor: 3

Average block replication: 3.7142856

Corrupt blocks: 0

Missing replicas: 0 (0.0 %)

Number of data-nodes: 45

Number of racks: 1

 

需要注意的是在執行fsck命令列的用戶端必選在hadoop-site.xml中配置dfs.http.address項,即namenode的http地址。否則會拋出java.net.ConnectException: Connection refused異常。其原因是fsck是namenode的一個servlet。而fsck命令對應的類DFSck其實是封裝了一個http串連,簡單的說就是抓取一個網頁。而這個網頁URL就是dfs.http.address配置項的value後面接上fsck,如http://10.249.65.1:50070/fsck。也就是說用瀏覽器開啟這個網頁和命令列執行fsck效果是一樣的。

namenode的這個Servlet類名是FsckServlet,它的doGet函數裡定義了一個NamenodeFsck對象並執行起fsck()函數。fack()函數遞迴地從指定path遍曆所有的目錄和檔案,並根據選項確定要列印的內容。如果指定了-move選項,則損壞的檔案會被移動到/lost+found目錄,如果在根目錄下已經存在一個名為lost+found的檔案,則move操作會失敗並列印warning資訊。

對於大的叢集來說,對根目錄執行fsck操作是很耗時間的而且對namenode壓力很大,因此要謹慎使用。通常每天在叢集較閒置時候執行一次以查看資料狀況。另外由於任何使用者都可以在命令列或瀏覽器中執行fsck操作,因此可以考慮對該操作進行 許可權控制,防止被誤操作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.