0

我使用 sqoop 与我的 TD 数据库进行拨号。当我尝试这个时,一切正常(我的表是在默认配置单元数据库中创建的)

sqoop import \
 -libjars $LIB_JARS \
 -Dteradata.db.input.job.type=hive \
 -Dteradata.db.input.target.table=hive_table \
 -Dteradata.db.input.target.table.schema="c1 bigint" \
 -m 1 \
 --connect jdbc:teradata://PRD/Database=database \
 --connection-manager org.apache.sqoop.teradata.TeradataConnManager \
 --username userTD \
 --password passTD \
 --table tableTD

但是当我尝试使用以下命令指定另一个配置单元数据库时:

 -Dteradata.db.input.target.database=hive_database \

脚本返回 OK,表已创建但内部没有任何数据...

需要一些帮助...

谢谢

4

1 回答 1

3

您是否遇到了 Hortonworks 指出的以下问题?您可以将表放在一个数据库中,然后运行 ​​INSERT OVERWRITE 将表写入另一个数据库。

来自 Hortonworks:

Sqoop Teradata 连接器选项 teradata.db.input.target.database 不起作用。

Sqoop 连接器使用的 Teradata Hadoop 连接器在将行加载到 Hive 表时使用了错误的 Hive 数据库名称。

解决方法是使用默认 Hive 数据库进行 Hive 导入。

http://docs.hortonworks.com/HDPDocuments/HDP1/HDP-1.3.0/bk_releasenotes_hdp_1.x/content/ch_relnotes-hdp1.2.2_5_7.html

于 2013-07-23T12:33:30.733 回答