Hive 用于在导入所有表中覆盖hdfs的Sqoop语法

Hive 用于在导入所有表中覆盖hdfs的Sqoop语法,hive,hdfs,sqoop,Hive,Hdfs,Sqoop,在我的hdfs中已经存在目录“mydatabase”,我正在尝试用sqoop更新mysql中hdfs的数据 但是,在import all tables命令中,hdfs目录中没有覆盖选项,只有在配置单元中 我正在尝试执行以下命令: sqoop import-all-tables --connect jdbc:mysql://10.20.20.43/mydatabase --username blizzard --password blizzard --warehouse-dir /user

在我的hdfs中已经存在目录“mydatabase”,我正在尝试用sqoop更新mysql中hdfs的数据

但是,在import all tables命令中,hdfs目录中没有覆盖选项,只有在配置单元中

我正在尝试执行以下命令:

sqoop import-all-tables 
--connect jdbc:mysql://10.20.20.43/mydatabase 
--username blizzard 
--password blizzard 
--warehouse-dir /user/hdfs/mydatabase -m 1
--hive-database mydatabase
--hive-import 
--hive-overwrite
--null-string '\\N' 
--null-non-string '\\N' 
--verbose
但我有一个错误:

17/05/03 19:48:13 ERROR tool.ImportAllTablesTool: 
Encountered IOException running import job:
org.apache.hadoop.mapred.FileAlreadyExistsException: 
Output directory hdfs://10.20.20.43:8020/user/hdfs/mydatabase/table1
already exists
我总是想导入所有的数据,因为我不知道哪一个数据可能已经被更改了

最好的方法是什么

谢谢

编辑:


--delete target dir
命令仅用于
导入
,而不用于
导入所有表
,根据文档

您可以删除所有数据以再次重写它们。请先尝试:

$hdfs dfs -rm -r /user/hduser/*

可能的重复项不重复,如果您查看文档,您所说的帖子的命令(--delete target dir)仅用于命令导入,而不用于命令导入所有表,这是我怀疑的@Andrew