java涓璵apper鎬庝箞浣跨敤
鍦↗ava涓紝"Mapper"閫氬父鏄寚鐢ㄤ簬灏嗚緭鍏ユ暟鎹浆鎹负涓€缁勯敭鍊煎鐨勭粍浠躲€傚叿浣撹€岃█锛屽湪Hadoop MapReduce妗嗘灦涓紝
Mapper鏄竴涓敤浜庡鐞哅ap闃舵鐨勭被銆備笅闈㈡槸浣跨敤Mapper鐨勪竴鑸楠わ細
1. 鍒涘缓涓€涓疄鐜颁簡org.apache.hadoop.mapreduce.Mapper鎺ュ彛鐨勭被锛屽苟閲嶅啓鍏朵腑鐨刴ap()鏂规硶銆?/span>
2. 鍦╩ap()鏂规硶涓紪鍐欓€昏緫鏉ュ鐞嗚緭鍏ユ暟鎹苟鐢熸垚涓€缁勯敭鍊煎杈撳嚭銆?/span>
3. 鍦╩ap()鏂规硶涓紝浣跨敤context.write(key, value)灏嗙敓鎴愮殑閿€煎杈撳嚭銆?/span>
4. 鍦ㄤ富绋嬪簭涓紝閰嶇疆鍜岃繍琛孧apReduce浣滀笟銆?/span>
浠ヤ笅鏄竴涓畝鍗曠殑绀轰緥锛屾紨绀轰簡濡備綍鍦↗ava涓娇鐢∕apper锛?/span>
import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
public class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
@Override
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();
String[] words = line.split(" ");
for (String word : words) {
this.word.set(word);
context.write(this.word, one);
}
}
}
鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑鍒涘缓浜嗕竴涓悕涓篗yMapper鐨勭被锛屽畠缁ф壙鑷狹apper绫诲苟瀹炵幇浜唌ap()鏂规硶銆傚湪map()鏂规硶涓紝鎴戜滑灏嗚緭鍏ョ殑姣忎竴琛屾媶鍒嗘垚鍗曡瘝锛屽苟浠ラ敭鍊煎鐨勫舰寮忚緭鍑烘瘡涓崟璇嶅拰1銆傚湪杩欑鎯呭喌涓嬶紝閿槸Text绫诲瀷鐨勫崟璇嶏紝鍊兼槸IntWritable绫诲瀷鐨?銆?/span>
褰撶劧锛屽叿浣撶殑浣跨敤鏂瑰紡杩樺彇鍐充簬鎮ㄦ墍搴旂敤鐨勫満鏅拰妗嗘灦銆備笂杩扮ず渚嬮€傜敤浜嶩adoop MapReduce妗嗘灦銆傚鏋滄偍浣跨敤鍏朵粬妗?/span>鏋舵垨搴擄紝璇峰弬鑰冪浉搴旂殑鏂囨。鍜岀ず渚嬩唬鐮併€?/span>
相关问答