0

我有一个最近经历MapR cluster10 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',用于对 hive 表执行所有操作。

有人对此有任何想法吗?

提前致谢。

4

1 回答 1

1

CLI 正在复制表详细信息,因为 MetaStore 数据库包含所有表详细信息,以及名称 Location,检查 MySQL/Posrtgress/Derby/Orable 中的表,使用 Hive Meta 存储数据库,表名称如 TBLS,在那里将看到所有 Meta Store 信息。

在上述情况下,正如您所提到的,您无法列出所有目录,数据块可能已损坏{您已经提到},因此如果您有 replecatino,您可以回调数据,但它的可能性非常小,你可以尝试通过以下方式重新启动 Metastore 服务

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

如果数据正在复制,那么 Namenode 将尝试修复相同的问题,否则您必须重新创建表,再次重新上传数据。

如果您有任何其他选择,请告诉我,以便我可以将其用于我的案例。:)

于 2015-08-24T02:36:31.243 回答