sqoop导出的问题,配置单元表按时间戳分区

igetnqfo  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(419)

我无法sqoop导出按时间戳分区的配置单元表。
我有一个按时间戳划分的配置单元表。它创建的hdfs路径包含空间,我认为这会导致sqoop出现问题。
fs-ls 2013-01-28 16:31/user/hive/warehouse/my\ u table/day=2013-01-28 00%3a00%3a00
从sqoop导出时出错:
13/01/28 17:18:23错误security.usergroupinformation:priviledgedactionexception as:brandon(auth:simple) cause:java.io.filenotfoundexception:文件不存在:/user/hive/warehouse/my\u 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)在org.apache.hadoop.hdfs.protocol.proto.clientnamenodeprotocolprotos$clientnamenodeprotocol$2.callblockingmethod(clientnamenodeprotocolprotos。java:44064)在org.apache.hadoop.ipc.protobufrpceengine$server$protobufrpinvoker.call(protobufrpceengine。java:453)在org.apache.hadoop.ipc.rpc$server.call(rpc。java:898)在org.apache.hadoop.ipc.server$handler$1.run(服务器。java:1693)在org.apache.hadoop.ipc.server$handler$1.run(server。java:1689)位于javax.security.auth.subject.doas(subject)的java.security.accesscontroller.doprivileged(本机方法)。java:396)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1332)在org.apache.hadoop.ipc.server$handler.run(服务器。java:1687)
如果您使用fs-ls/user/hive/warehouse/my\u 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':没有这样的文件或目录
如果您添加引号,它就可以工作:brandon@prod-namenode-new:~$fs-ls/user/hive/warehouse/my\u table/day=“2013-01-28 00%3a00%3a00”找到114个项目-rw-r--r--2 brandon supergroup 4845 2013-01-28 16:30/user/hive/warehouse/my\u table/day=2013-01-28%2000%253a00%253a00/000000\u 0。。。

2jcobegt

2jcobegt1#

您可以尝试使用“/user/hive/warehouse/my\u table/day=2013-01-28*”。

erhoui1w

erhoui1w2#

所以你可以做的是:
从配置单元中选择所有数据并将其写入hdfs中的目录
(使用insert overwrite directory“…path…”从表a中选择a.column\u 1、a.column\u n),
在sqoop命令中,使用--export dir..dir.指定目录位置。。
希望这会有帮助。

xzv2uavs

xzv2uavs3#

带有冒号(:)的文件名不支持作为这些jira中提到的hdfs路径。但可以通过将其转换为十六进制来工作。但是当sqoop再次尝试读取该路径时,它将其转换为冒号(:),因此无法找到该路径。我建议从目录名中删除时间部分,然后重试。希望这能回答您的问题。

相关问题