2015-08-21 34 views
0

我有一個最近進行了一些重組。基本上在某些已修復的節點上存在一些丟失的磁盤。在此之後,在HDFS path上找不到配置單元目錄。但是,配置單元表和數據完好無損,可以從配置單元CLI中查看錶格。配置單元表存在但找不到目錄

我試過fsck哪個運行沒有任何問題,然後執行了gfsck
下面是gfsck的輸出:

$ sudo /opt/mapr/bin/gfsck -r cluster=tmcluster1 rwvolume=users 
Starting GlobalFsck: 
    clear-mode  = false 
    debug-mode  = false 
    dbcheck-mode  = false 
    repair-mode  = true 
    assume-yes-mode = false 
    cluster  = tmcluster1 
    rw-volume-name = users 
    snapshot-name  = null 
    snapshot-id  = 0 
    user-id  = 0 
    group-id  = 0 

    get volume properties ... 

    put volume users in global-fsck mode ... 

    get snapshot list for volume users ... 

    starting phase one (get containers) for volume users(31225146) ... 
    got volume containers map 
    done phase one 

    starting phase two (get inodes) for volume users(31225146) ... 
java.lang.Exception: ContainerGetInodes RPC retry 11 
    at com.mapr.fs.globalfsck.PhaseTwo$PhaseTwoThread.getInodesOfContainer(PhaseTwo.java:238) 
    at com.mapr.fs.globalfsck.PhaseTwo$PhaseTwoThread.run(PhaseTwo.java:154) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

在蜂房,我只能看到表,結構等我不能解僱任何其他DDL。例如一個表上的正常計數給出了以下錯誤:

hive> select count(1) from table1; 
2015-08-20 21:10:13,4261 ERROR JniCommon fs/client/fileclient/cc/jni_MapRClient.cc:1306 Thread: 27514 mkdirs failed for /user/mapr/tmp/hive/hive_2015-08-20_21-10-13_254_31142713538709, error 11 
FAILED: RuntimeException java.io.IOException: Error: Resource temporarily unavailable(11), file: hive_2015-08-20_21-10-13_254_3114271353870903660-1, user name: mapr, ID: 5000 

這裏只有只有一個用戶,'mapr',對蜂巢表上執行所有操作。

有人對此有何看法?

在此先感謝。

回答

1

CLI正在複製表詳細信息,MetaStore DB包含所有表詳細信息,以及名稱位置,檢查您的表MySQL/Posrtgress/Derby/Orable,Hive Meta商店數據庫,表名稱類似TBLS,你會看到所有的Meta Store信息。

在上面的例子中,你已經提到你不能列出所有可能的數據塊被損壞的{你已經提到的},所以如果你有replecatino,你可能會可以打電話回數據,但其posibility是非常少的,一些你如何試圖通過

"hive --service metastore" or "sudo service hive-metastore start" or "hive --service metastore" 

重新啓動metastore服務。如果數據是具有複製,然後的Namenode會嘗試修復相同的,否則你有重新創建表,再次上傳數據。

讓我知道如果你有任何其他選項,以便我可以用於我的情況。 :)

+0

謝謝Debjit。我已經嘗試了metastore重新啓動,但這並沒有解決我的問題。掛載了hive表的掛載似乎在目錄結構中顯示爲文件而不是目錄。我做了一個fsck的那個目錄名稱,並以某種方式解決了這個問題:) 我讀了一下,並得到了一個想法,有時由於壞扇區,它發生了一個特定的內存段不聯機,你必須多次使用fsck來實現這一點。 感謝您的回覆。 – knowone

相關問題