我无法将数据加载到配置单元表中,并且日志显示此问题
我要加载的文件:
[hdfs @ vmi200937 root] $ hdfs dfs -ls / suppression-files找到1项 -rw-rw-rw- 3 hdfs hdfs 694218562 2018-12-21 05:06 /suppression-files/md5.txt
配置目录:
[hdfs @ vmi200937 root] $ hdfs dfs -ls /apps/hive/warehouse/suppression.db找到1项drwxrwxrwx-Hive hadoop 0 2018-12-21 06:30 /apps/hive/warehouse/suppression.db/md5supp
配置查询:
配置单元(抑制)> LOAD DATA INPATH'/suppression-files/md5.txt'INTO 表md5supp;
日志:
将数据加载到表抑制中。md5supp出现异常失败 java.io.FileNotFoundException:目录/文件不存在 /apps/hive/warehouse/suppression.db/md5supp/md5.txt位于 org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkOwner(FSDirectory.java:1901) 在 org.apache.hadoop.hdfs.server.namenode.FSDirAttrOp.setOwner(FSDirAttrOp.java:82) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setOwner(FSNamesystem.java:1877) 在 org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setOwner(NameNodeRpcServer.java:828) 在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setOwner(ClientNamenodeProtocolServerSideTranslatorPB.java:476) 在 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos $ ClientNamenodeProtocol $ 2.callBlockingMethod(ClientNamenodeProtocolProtos.java) 在 org.apache.hadoop.ipc.ProtobufRpcEngine $ Server $ ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640) 在org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:982)处 org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:2351)在 org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:2347)在 java.security.AccessController.doPrivileged(本机方法),位于 javax.security.auth.Subject.doAs(Subject.java:422)在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1869) 在org.apache.hadoop.ipc.Server $ Handler.run(Server.java:2347)
FAILED:执行错误,从以下位置返回代码40000 org.apache.hadoop.hive.ql.exec.MoveTask。 java.io.FileNotFoundException:目录/文件不存在 /apps/hive/warehouse/suppression.db/md5supp/md5.txt位于 org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkOwner(FSDirectory.java:1901) 在 org.apache.hadoop.hdfs.server.namenode.FSDirAttrOp.setOwner(FSDirAttrOp.java:82) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setOwner(FSNamesystem.java:1877) 在 org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setOwner(NameNodeRpcServer.java:828) 在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setOwner(ClientNamenodeProtocolServerSideTranslatorPB.java:476) 在 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos $ ClientNamenodeProtocol $ 2.callBlockingMethod(ClientNamenodeProtocolProtos.java) 在 org.apache.hadoop.ipc.ProtobufRpcEngine $ Server $ ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640) 在org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:982)处 org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:2351)在 org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:2347)在 java.security.AccessController.doPrivileged(本机方法),位于 javax.security.auth.Subject.doAs(Subject.java:422)在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1869) 在org.apache.hadoop.ipc.Server $ Handler.run(Server.java:2347)
答案 0 :(得分:0)
我找到了解决方案! 我应该将目录/ suppression-file的所有者设置为hive:hdfs 通过hdfs dfs chown -R hive:hdfs / suppression-file