2016-09-15 2 views
2

HBaseのノード上で動作するマッパージョブの情報を送信する必要があります。クラス内で既にデータを静的メンバーとして定義していますが、マッパーが他のノードで実行されているときに、データがノードに転送されていないようです。それを行う方法はありますか?Mapperクラスにデータを送信する方法(HBaseデータベースのデータ上で実行する)

public class GetResultFromVerticesIDMapper extends TableMapper< ResultVal, IntWritable > { 

    public static HashMap<Long, Boolean> vertexIDsHashMap; 
    public static int     nResultComponents; 

... 
} 

答えて

1

私は設定にパラメータを送信してこれをした:

Configuration conf; 
conf.addResource(new Path(hbaseConfigurationFile)); 
conf.set("simplificationParameters", simpParameters.toString()); 

と、次のようにマッパークラスにそれらを取得する:あなたが言及した道の上

_simplificationParameters.fromString(context.getConfiguration().get("simplificationParameters")); 
2

は一つの方法です。.. 他の方法では、システムプロパティを送信すると自動的にコンテキストに設定されます。

プログラムを実行している間、あなたはあなたがあなたにそれをやったのと同じ方法と同様に、マッパーまたは減速でそれを取り戻すことができます(-Dオプション付き)システムプロパティとしてパラメータを渡すか、入力を受け入れ、System.setProperty("simplificationParameters","user_entered_input")

を使用して設定することができます答え... ie context.getConfiguration().get("simplificationParameters")

関連する問題