2016-07-12 9 views
0

私のおっとのワークフローでは、ダイナミックにハイブテーブルを作成します。このハイブアクションの後にmap-reduceアクションが続きます。私はフィールドの別の値(T1.group)と等しい還元剤のプロパティ(mapred.reduce.tasks)の数を設定したい。どのようにいくつかのoozieパラメータの値を動的に設定する方法や、ハイブの別のアクションからパラメータの値を取得する方法についてのアイデアはどれですか?oozieパラメータ(MRアクションのレデューサーの数)を動的に計算する

答えて

2

私はこれが役立つことを願って:あなたはすでにやっているよう

  1. は、ハイブのテーブルを作成します。
  2. 列の個別の値を計算し、それをhdfsのファイルに書き込む別のHiveクエリを実行します。
  3. Shellアクションを作成します。これによりファイルが読み込まれ、値はkey=valueの形式でエコーされます。シェルアクションに対してcapture-outputを有効にします。
  4. これはあなたのMRアクションです。 Oozie EL機能を使用してアクションデータにアクセスします。例えば${wf:actionData('ShellAction')['key']}の場合は、MRアクションのconfigurationタグ内のmapred.reduce.tasksにこの値を渡します。
関連する問題