Sqoop导入奇怪的错误

时间:2018-02-08 14:47:40

标签: cloudera cloudera-cdh sqoop

我有一个hive外部表n1,其位置设置为/user/cloudera/n1。我还有一个MySQL表,其名称也是n1。现在当我尝试将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)

1 个答案:

答案 0 :(得分:1)

这并不奇怪,这就是Sqoop的工作原理。当您使用Sqoop将表导入配置单元时,它将在表的名称中在用户主目录中创建一个暂存文件,如果是/user/cloudera/n1这就是问题所在。

你应该移动你的外部表路径,或者你应该使用--targer-dir在其他目录中导入表格,然后在其上创建一个hive表。