我无法 sqoop 导出按时间戳分区的配置单元表。
我有一个按时间戳分区的配置单元表。它创建的 hdfs 路径包含我认为导致 sqoop 问题的空格。
fs -ls 2013-01-28 16:31 /user/hive/warehouse/my_table/day=2013-01-28 00%3A00%3A00
从 sqoop 导出的错误:
13/01/28 17:18:23 错误 security.UserGroupInformation: PriviledgedActionException as:brandon (auth:SIMPLE) 原因:java.io.FileNotFoundException: 文件不存在: /user/hive/warehouse/my_table/day=2012- 10-29 00%3A00%3A00 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsUpdateTimes(FSNamesystem.java:1239) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem. java:1192) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1165) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1147)在 org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:383) 在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB。getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:170) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call (ProtobufRpcEngine.java:453) 在 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693)在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:396 ) 在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687) 的 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)170) 在 org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) 的 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) ) 在 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop .ipc.Server$Handler$1.run(Server.java:1689) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache。 hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) 在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)170) 在 org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) 的 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) ) 在 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop .ipc.Server$Handler$1.run(Server.java:1689) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache。 hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) 在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687)callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java: 898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 在 java.security .AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)callBlockingMethod(ClientNamenodeProtocolProtos.java:44064) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java: 898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 在 java.security .AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 在 java.security .AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)898) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 在 java.security .AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) at org.apache.hadoop .ipc.Server$Handler.run(Server.java:1687)
如果你执行 fs -ls /user/hive/warehouse/my_table/day=2013-01-28 00%3A00%3A00 ls: /user/hive/warehouse/my_table/day=2013-01-28': No such file or directory
ls:
00%3A00%3A00': No such file or directory
如果添加引号,它会起作用:brandon@prod-namenode-new:~$ fs -ls /user/hive/warehouse/my_table/day="2013-01-28 00%3A00%3A00" 找到 114 个项目 -rw-r --r-- 2 布兰登超级组 4845 2013-01-28 16:30 /user/hive/warehouse/my_table/day=2013-01-28%2000%253A00%253A00/000000_0 ...