我有一个 MapR cluster
的 10 nodes
最近进行了一些重组。基本上,在某些节点上有一些丢失的磁盘已修复。在此之后,在服务器上找不到配置单元目录 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)
在 hive 里,我只能看到table,结构等,我不能发射任何其他的 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条答案
按热度按时间yptwkmov1#
cli正在复制表的详细信息,因为metastore db包含所有的表的详细信息,以及名称位置,检查mysql/posrtgress/derby/orable中的表,使用hive meta store db,表名类似tbls,在那里您将看到所有的meta store信息。
在上面的例子中,正如你提到的,你不能列出所有的目录,可能是数据块损坏了{你已经提到了},所以如果你有replecatino,你可以回调数据,但是它的可能性非常小,你可以尝试重新启动metastore服务
如果数据正在进行复制,那么namenode将尝试修复相同的数据,否则必须重新创建表,再次重新加载数据。
如果您有其他选择,请告诉我,这样我就可以在我的案子中使用。:)