尝试将数据从Oracle导入HIVE时出错

时间:2017-11-21 11:18:01

标签: hadoop hive hiveql sqoop

我在命令下运行,将数据从Oracle Db导入HIVE

sqoop import --connect jdbc:oracle:thin:@//localhost:1521/newDB --username <USERNAME> --P --table <ORACLE_TABLE_NAME> --hive-table <HIVE_TABLE_NAME> --hive-import -m 1

我在运行此查询时遇到错误

17/11/21 05:05:46 INFO oracle.OraOopManagerFactory: Data Connector for Oracle and Hadoop is disabled.
17/11/21 05:05:46 INFO manager.SqlManager: Using default fetchSize of 1000
17/11/21 05:05:46 INFO tool.CodeGenTool: Beginning code generation
17/11/21 05:05:47 INFO manager.OracleManager: Time zone has been set to GMT
17/11/21 05:05:47 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM "<TABLE_NAME>" t WHERE 1=0
17/11/21 05:05:47 ERROR tool.ImportTool: Imported Failed: There is no column found in the target table <TABLE_NAME>. Please ensure that your table name is correct.

2 个答案:

答案 0 :(得分:0)

检查表的所有者并尝试将table_owner.table_name用于oracle源。

答案 1 :(得分:0)

我发现你的查询中没有使用--create-hive-table和其他一些参数。

以下是我在项目中使用的sqoop导入查询:

oracle_connection.txt将具有连接信息。

sqoop --options-file  oracle_connection.txt \
--table $DATABASE.$TABLENAME \
-m $NUMMAPPERS  \
--where "$CONDITION" \
--hive-import \
--map-column-hive "$COLLIST" \
--create-hive-table \
--hive-drop-import-delims \
--split-by $SPLITBYCOLUMN  \
--hive-table $HIVEDATABASE.$TABLENAME \
--bindir sqoop_hive_rxhome/bindir/ \
--outdir sqoop_hive_rxhome/outdir