私は共有することができますHashMapと異なるマッパー静的のような値を持つ?私はハープクラスターで仕事をしています。そして、私は、異なるデータノードで動いているすべてのマッパーの間で変数の値を共有しようとしています。Hadoopのマッパー間でHashMapを共有する方法は?
INPUT ==> FILEIDファイルパス
のInputFormat => KeyValueTextInputFormat
public class Demo {
static int termID=0;
public static class DemoMapper extends Mapper<Object, Text, IntWritable, Text> {
static HashMap<String, Integer> termMapping = new HashMap<String, Integer>();
@Override
protected void map(Object key, Text value, Context context) throws IOException, InterruptedException {
BufferedReader reader = new BufferedReader(new FileReader(value));
String line;
String currentTerm;
while ((line = reader.readLine()) != null) {
tokenizer = new StringTokenizer(line, " ");
while (tokenizer.hasMoreTokens()) {
currentTerm = tokenizer.nextToken();
if (!termMap.containsKey(currentTerm)) {
if (!termMapping.containsKey(currentTerm)) {
termMapping.put(currentTerm, termID++);
}
termMap.put(currentTerm, 1);
} else {
termMap.put(currentTerm, termMap.get(currentTerm) + 1);
}
}
}
}
}
public static void main(String[] args) {
}
}
のように思えますタスク間のスパークで。 MapReduce –
Thxでそれを試したことはありませんが、Sparkを使用したくありません –
さて、地図を追加しようとしたMapReduceコードを表示してください。どのようなエラーがありましたか? –