sqoop导入奇怪的错误
Posted
技术标签:
【中文标题】sqoop导入奇怪的错误【英文标题】:Sqoop import strange error 【发布时间】:2018-02-08 14:47:39 【问题描述】:我有一个 hive 外部表 n1
,其位置设置为 /user/cloudera/n1
。我还有一个名为n1
的mysql 表。现在,当我尝试将 n1
(MySQL) 导入为 n2
(Hive) 时,我收到了这个奇怪的错误 /user/cloudera/n1 already exists
。
[cloudera@quickstart ~]$ sqoop import --table n1 --connect jdbc:mysql://localhost/retail_db --username root --password cloudera --hive-import --hive-table n2 -m 1
18/02/08 06:34:05 ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://quickstart.cloudera:8020/user/cloudera/n1 already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
【问题讨论】:
您要覆盖 hive 中的表吗?还是追加? 该点既不是覆盖也不是追加。 删除 hdfs 目录并重新运行作业。 ***.com/questions/38649071/…gchandra.com/error-messages/… 您好 Roh,感谢您的帮助。但我应该请您仔细阅读这个问题以及表名。我要导入的表是n1
为n2
。现在阅读错误。
【参考方案1】:
这并不奇怪,这就是 Sqoop 的工作原理。当您使用 Sqoop 将表导入配置单元时,它将在用户主目录中以表的名称创建一个暂存文件,在您的情况下是 /user/cloudera/n1
这就是问题所在。
您应该移动您的外部表路径,或者您应该使用--targer-dir
在其他目录中导入表,然后在其上创建配置单元表。
【讨论】:
以上是关于sqoop导入奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
Sqoop 导入错误:UnsupportedClassVersionError CDH 5.16
sqoop 导入未识别显示 ClassNotFountException 错误的 mysql 表
在 Hadoop 2.7.3 上执行简单 SQOOP 导入命令时出现 Sqoop 错误
Sqoop 导入错误 Error: java.io.IOException: SQLException in nextKeyValue
Sqoop - 错误工具.ImportTool:导入失败:尝试从 SQL Server 导入时无法转换 SQL 类型 2005