蜂巢外部表

时间:2014-10-14 12:32:35

标签: hadoop hive

我正在尝试使用sqoop将数据从Oracle导入到Hive 我使用下面的命令一次,现在我想用新数据覆盖现有数据(Daily Action) 我又跑了这个命令。

sqoop import --connect jdbc:oracle:thin:@UK01WRS6014:2184:WWSYOIT1 
--username HIVE --password hive --table OIDS.ALLOCATION_SESSION_DIMN 
--hive-overwrite --hive-database OI_DB --hive-table ALLOCATION_SESSION_DIMN  

但我收到错误文件已经存在:

14/10/14 07:43:59 ERROR security.UserGroupInformation: 
PriviledgedActionException as:axchat 
(auth:SIMPLE) cause:org.apache.hadoop.mapred.FileAlreadyExistsException: 
Output directory 
hdfs://uslibeiadg004.aceina.com:8020/user/axchat/OIDS.ALLOCATION_SESSION_DIMN 
already exists

我在hive中创建的表都是外部表。 像mapreduce一样,每次执行相同的命令时我们都必须删除该文件吗?

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

当您从EXTERNAL表中删除时,您只删除Hive Metastore中的对象:您不会删除叠加该表的文件。非外部表属于Hive,并且在删除时会导致Metoreore- AND HDFS数据被删除。

因此,您可以尝试显式删除HDFS数据,也可以将表定义为hive内部。

相关问题