项目场景:
重建hive catalog,删除hdfs的数据,后删除catalog失败
问题描述:
1.先直接删除hdfs文件,在删除catalog,删catalog报错,提示找不到hdfs的文件
Flink SQL> drop table jv_h5_client_log;
[ERROR] Could not execute SQL statement. Reason:
org.apache.hadoop.ipc.RemoteException: File does not exist: /user/hive/warehouse/iceberg_db.db/jv_h5_client_log/metadata/00000-d719ef8e-dacc-4c95-ae8e-268619fc508e.metadata.json
at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:71)
at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:61)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:1828)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1799)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1712)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:587)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:365)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)
原因分析:
以后删数据,不要直接在hdfs上删
解决方案:
不需要解决,测试环境,了解iceberg做的实验
HiveCatalog删除问题
本文记录了一次在测试环境中重建HiveCatalog并尝试删除表的过程中遇到的问题。在直接删除HDFS上的文件后再删除对应的Catalog时出现了错误提示,原因是HDFS上的文件已被手动删除导致无法找到对应的元数据。
1562

被折叠的 条评论
为什么被折叠?



