存在hive表但找不到目录

时间:2015-08-21 06:12:09

标签: hadoop hive mapr

我有一个MapR cluster 10 nodes,最近经历了一些重组。基本上,某些节点上有一些丢失的磁盘已修复。在此之后,在HDFS path上找不到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表的所有操作。

有人对此有任何想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

在上面的例子中,正如你所提到的那样,你无法列出所有可能的数据块可能会被损坏{你已经提到过},所以如果你有replecatino就可以了,你可以回调数据,但它的可能性非常小,有些如何尝试通过

重新启动Metastore服务
"hive --service metastore" or "sudo service hive-metastore start" or "hive --service metastore"

如果Data正在进行复制,那么Namenode将尝试修复它,否则你必须重新创建表,再次重新上载数据。

让我知道如果您有任何其他选项,那么我可以用于我的情况。 :)