シナリオはファイル(Input)を処理する必要があり、レコードごとに入力ファイルの特定のフィールドがHadoopクラスタに格納されているフィールドと一致するかどうかを確認する必要があります。MRJobでHIVEを接続する
MRJobを使用して入力ファイルを処理し、HIVEを使用してhadoopクラスタからデータを取得することを考えています。私は、MRJobモジュールの内部でHIVEを接続することが可能かどうかを知りたいと思います。もしそうなら、それを行う方法?
私の要件を満たすための理想的なアプローチではない場合は、
Hadoop、MRJob、Hiveの新機能です。
いくつかご提案ください。
はい。私は、フィールド「ADD1」の値かどうかを確認する必要が 名、ADD1、ADD2、郵便番号、 マーク、31 Maybush、XXX、WF1 5XY :例 のための私の入力ファイルは、この 入力ファイルのようなものです入力ファイルの "Mark"の "31 Maybush"は同じ名前のclusterのデータと一致します。 – user1703319
すべてのファイルのスキーマは同じですか?はいの場合、Hiveテーブルを作成して、新しいHiveテーブルに保存している数百/数千のファイルをすべて読み込むことができます。その後、MapReduceからHiveクエリを実行するために接続することができます。あなたのHiveクエリは次のようになります:SELECT * FROM huge_hive_table where add1 = '31 Maybush 'AND name =' Mark ';もちろん、各入力ファイルの行が読み込まれるにつれ、MaybushとMarkを動的に変更する必要があります。 – AkashNegi
上記のアプローチの問題は、Hiveの各クエリにMRジョブがあるため、各行を比較しているので、入力ファイルの各行に対してMRジョブが実行されることです。あなたが比較のために2000のラインと2000のMRジョブを持っているならば。 – AkashNegi