2

Sqoop を使用して、MySQL から HDFS への増分インポートを正常に実行できます。

sqoop job -create JOBNAME ... --incremental append --check-column id --last-value LAST
sqoop job -exec JOBNAME

次のようなログメッセージで終了します

INFO tool.ImportTool: Saving incremental import state to the metastore
INFO tool.ImportTool: Updated data for job: JOBNAME

ジョブを調べると、incremental.last.value が正しく更新されていることがわかります。

同じ手順を試みて、ジョブの定義に「--hive-import」を追加すると、ジョブは正常に実行されますが、incremental.last.value は更新されません。

これはバグですか?意図した動作?MySQL からデータを段階的にインポートし、Hive 経由で利用できるようにする手順を知っている人はいますか?

私は基本的に、Hadoop クラスターを MySQL データベースの読み取りスレーブにして、高速分析を行いたいと考えています。Hive 以外の解決策がある場合 (Pig で問題ありません)、それも聞きたいです。

4

3 に答える 3

0

オプション --hive import は、mapreduce ジョブを使用して HDFS 上にテーブルの定義済み構造を作成するために使用されます。さらに、Hive に読み込まれるデータはRead Schema です!!! .これは、クエリが実行されない限り、データが実際にインポートされないことを意味します.したがって、ファイルを実行するたびに、Hiveのテーブルでスキーマでクエリが新しく(新たに)実行されます.したがって、最後の増分は保存されません価値。

Hive スキーマのすべてのクエリは、実行時に実行され、古い結果を保存しないため、独立したものとして扱われます。

于 2014-08-11T20:45:40.150 に答える
0

外部ハイブ テーブルを手動で作成することもできます。これらは 1 回限りのアクティビティであり、実行中に増分データをインポートし続けるためです。

于 2014-08-12T08:09:30.433 に答える