2016-10-03 21 views
0

は、私は次の操作を実行するためのMapReduceジョブを書きたいと思います:のMapReduce、HDFS入力、ハイブのテーブル出力

  1. 読むHDFSファイル。
  2. 読み取りレコードが既にテーブル(Hive/Hbase)に存在することを確認します。
  3. 存在する場合は、更新操作を実行します。存在しない場合は、テーブルにデータを書き込み/挿入します(Hive/Hbase)。

上記のプロセスを毎日繰り返す。

質問:

  1. それはハイブとロジックの上に実装することは可能ですか?
  2. MRジョブの書き込み方法は?上記のロジックを実装するための任意の例?

答えて

1

あなたが望むことを行う方法以上のものがあります。 はい、あなたはハイブですべてを行うことができます。 HiveにはHbaseにアクセスできるSerDesがいくつかありますので、これもハイブから使用できます。

あなたのMRジョブは、作業を行うマッパーによってのみ構成されています。とにかく、ハイブはそれを行うことができるので、私はMR仕事を書く良い考えではないと思います。 おそらくMRジョブを構築するための速い方法は、ユーティリティー・ストリームを使用することです。マッパーは好きな言語で書くことができます。

ハイブまたは小さなMRジョブを使用している場合は、ジョブをoozieの下に置き、日常的に実行することができます。

+0

ありがとうございました。私はHive/Hbaseテーブルにデータを挿入する前に、いくつかのデータ操作を実行する必要があります。 Hiveでデータ操作を行うことは可能ですか?あなたはユーティリティストリームによって何を意味しますか? – Ravi

+0

カスタムマッパーとレデューサーを使用してファイルをスキャンできるjarがあります。シンプルなマップレデューサージョブの作成を開始するには、簡単で良い方法です。 Googleのハープ・ストリーミング – ozw1z5rd

+0

ありがとうございます。私はGoogleで検索します。私はHive/Hbaseテーブルにデータを挿入する前に、いくつかのデータ操作を実行する必要があります。 Hiveでデータ操作を行うことは可能ですか?この疑問に何らかの疑惑がありますか? – Ravi

関連する問題