10. MapReduce工作原理10Map: (k1,v1) -> list (k2,v2)
Reduce: (k2,list(v2)) -> list (k3,v3)
11. MapReduce 模型Input split shuffle output 交换11
12. MapReduce 工作步骤12
13. 统计单词数The weather
is goodThis guy
is a good manToday
is goodGood man
is goodthe 1
weather 1
is 1
good 1today 1
is 1
good 1this 1
guy 1
is 1
a 1
good 1
man 1good 1
man 1
is 1
good 1a 1 good 1
good 1
good 1
good 1
good 1man 1
man 1the 1weather 1today 1guy 1is 1
is 1
is 1
is 1this 1a 1good 5guy 1is 4man 2the 1this 1today 1weather 113
15. 分布存储与并行计算Data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data data
Data data data data dataResults
Data data data data
Data data data data
Data data data data
Data data data data
Data data data data
Data data data data
Data data data data
Data data data data
Data data data dataHadoop ClusterDFS Block 1DFS Block 1DFS Block 2DFS Block 2DFS Block 2DFS Block 1DFS Block 3DFS Block 3DFS Block 3MAPMAPMAPReduce15
31. 安装常见问题Incompatible namespaceIDs
Could not obtain block
Java heap space
ssh密码问题
Incompatible build versions
Cannot delete // Namenode is in safe mode
connect to host master port 22: Conncetion timed out
31
32. 举例:单词计数Page 1:the weather is good.
Page 2 : good weather is good.
32 (key,value) (the,1)(weather,1)(is,1)(good,1) (key,value) (good,1)(weather,1)(is,1)(good,1) (key,value) (the,1)(weather,2)(is,2)(good,3)Map1Map2Reduce
33. Map函数void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) {
String line = value.toString();
StringTokenizer t= new StringTokenizer(line);
while (t.hasMoreTokens()) {
word.set(t.nextToken());
output.collect(word, one);
}
}33
34. Reduce函数void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) {
int sum = 0;
while (values.hasNext()) {
sum += value.next().get();
}
output.collect(key,new IntWritable(sum));
} 34