如何将oracle表导入hive表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将oracle表导入hive表相关的知识,希望对你有一定的参考价值。

我正在尝试使用sqoop将oracle表导出到hive表:

sqoop import --connect  jdbc:oracle:thin:@<server>:1521:<db> --username <user> --password <passwd> --table <table name> --hive-import --hive-table <hive_table_name> -m 1

我一直收到这个错误。

2018-09-13 10:55:34,825 ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/<table_name> already exists

我想将oracle表导入到hive表中。我在这里失踪了什么?

答案

您的表已存在于HDFS上,您应该添加target-dir(hdfs上的路径)

句法:

sqoop import --connect jdbc:sqlserver://sqlserver-name 
      --username <username> 
      --password <password> 
      --driver   <driver-manager-class> 
      --table    <table-name> 
      --target-dir  <target-folder-name>

然后根据target-dir创建一个外部Hive表

另一答案

您可以使用hive-import从RDBMS导入到Hive

sqoop import 
--connect jdbc:mysql://localhost/learning 
--username root --password-file "/Learning/sqoop/.password" 
--table employee -m 1 
--target-dir /Learning/sqoop/import/employee_hive 
--hive-import 
--hive-table employee.employee_hive

根据您的要求更改参数。如果要创建新的Hive表,也可以使用--create-hive-table

以上是关于如何将oracle表导入hive表的主要内容,如果未能解决你的问题,请参考以下文章

如何从Oracle到hive

将Mongodb的表导入到Hive中

用sqoop 把oracle表迁移到hive 上怎么处理字段类型不一样

如何将 mysql 表同步到 hive 表? (不支持 sqoop --incremental lastmodified hive 导入)

如何用sqoop查看oracle的表

sqoop从oracle导数据后是空表