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 が指摘した以下の問題が発生している可能性はありますか? テーブルを 1 つのデータベースに配置してから、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 に答える