0

私はMapR cluster最近10 nodesいくつかのリストラを受けています。基本的に、修正されたいくつかのノードで欠落しているディスクがいくつかありました。この後、ハイブ ディレクトリが に見つかりませんでしたHDFS path。ただし、Hive のテーブルとデータはそのままで、テーブルは hive から見ることができます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 人だけです。

誰でもこれについて何か考えがありますか??

前もって感謝します。

4

1 に答える 1

1

CLI はテーブルの詳細をレプリケートしています coz、MetaStore DB にはすべてのテーブルの詳細が含まれており、名前は Location です。MySQL/Posrtgress/Derby/Orable のテーブルをチェックし、Hive メタ ストア DB、TBLS のようなテーブル名を使用します。すべてのメタ ストア情報が表示されます。

上記のケースでは、すべてのディレクトリをリストすることはできないと述べているように、データ ブロックが破損している可能性があります {これについてはすでに言及しました}。データですが、その可能性は非常に低く、いくつかの方法でメタストア サービスを再起動してみてください。

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

データにレプリケーションがある場合、Namenode は同じ問題を修正しようとします。そうでない場合は、データを再アップロードするためにテーブルを再作成する必要があります。

他のオプションがある場合はお知らせください。私のケースでも同じように使用できます。:)

于 2015-08-24T02:36:31.243 に答える