Best of Breed MapReduce ジョブの使用

  1. AdvanceMatchFactoryのインスタンスを、その静的メソッド getInstance() を使用して作成します。
  2. Best of Breed ジョブの入力と出力の詳細を指定します。以下の手順に従って、BestofBreedDetailを指定するProcessType のインスタンスを作成することによって、これを行います。このインスタンスは、MRProcessTypeタイプを使用する必要があります。
    1. GroupbyOptionのインスタンスを作成することによって、レコードのグループ化に使用する列を指定します。
      GroupbyMROptionのインスタンスを使用して、必要な Group-By 列とリデューサー数を指定します。
    2. BestOfBreedConfigurationのインスタンスを作成することによって、ジョブの統合ルールとテンプレート ルールを生成します。このインスタンスの中で、次の操作を行います。
      1. ConsolidationConditionのインスタンスを使用して、テンプレート レコードを定義します。このインスタンスは、ConsolidationRule インスタンスで構成されます。
      2. ConsolidationConditionのインスタンスを使用して統合条件を定義し、論理演算子を使用して条件を組み合わせます。

        ConsolidationConditionの各インスタンスは、ConsolidationRule インスタンスとそれに対応する ConsolidationAction インスタンスを使用して定義されます。

      注: ConsolidationRuleの各インスタンスは、SimpleRule の 1 つのインスタンスによって定義するか、または、子の SimpleRule インスタンスとネストされたConjoinedRule インスタンスが、論理演算子で結合された階層を使用して定義できます。列挙 JoinType、および列挙 Operationを参照してください。
    3. BestofBreedDetailのインスタンスを作成します。JobConfig タイプのインスタンスと、上で作成した GroupbyOption インスタンスおよび BestOfBreedConfiguration インスタンスを、コンストラクタの引数として渡します。
      JobConfigパラメータは、MRJobConfig タイプのインスタンスである必要があります。
    4. inputPathインスタンスの BestofBreedDetail フィールドを使用して、入力ファイルの詳細を設定します。
      テキスト入力ファイルの場合は、適切なコンストラクタを呼び出して、関連する詳細な入力ファイル情報を指定してFilePathのインスタンスを作成します。ORC 入力ファイルの場合、ORC 入力ファイルのパスを引数に指定して OrcFilePathのインスタンスを作成します。
    5. outputPathインスタンスの BestofBreedDetail フィールドを使用して、出力ファイルの詳細を設定します。
      テキスト出力ファイルの場合は、適切なコンストラクタを呼び出して、関連する詳細な出力ファイル情報を指定してFilePathのインスタンスを作成します。ORC 出力ファイルの場合、ORC 出力ファイルのパスを引数に指定して OrcFilePathのインスタンスを作成します。
    6. jobNameインスタンスの BestofBreedDetail フィールドを使用して、ジョブの名前を設定します。
    7. compressOutputインスタンスの BestofBreedDetail フラグに true を設定して、ジョブの出力を圧縮します。
  3. 先ほど作成した AdvanceMatchFactoryのインスタンスを使用してそのメソッドcreateJob() を呼び出し、MapReduce ジョブを作成します。ここで、上の BestofBreedDetailのインスタンスを引数として渡します。
    createJob()メソッドはジョブを作成し、List インスタンスの ControlledJob を返します。
  4. JobControlのインスタンスを使用して、作成したジョブを実行します。
  5. MapReduce ジョブの正常実行後にレポート カウンタを表示するには、先ほど作成した AdvanceMatchFactoryのインスタンスを使用して、そのメソッド getCounters() を呼び出します。作成したジョブを引数として渡します。