MapReduce入门

MapReduce入门

其实我们首先可以从 wordCount实例中来理解MapReduce,MapReduce可以分为6步骤:input,split,map,shuffle,reduce,output。
1.input :给定文档,包括如下信息:

  • Hello Java
  • Hello C
  • Hello Java
  • Hello C++
    2.split:将上述文档中每一行的内容转化为 key-value

  • 0 - Hello Java

  • 1 - Hello C
  • 2 – Hello Java
  • 3 - Hello C++
    3.map:将拆分之后的内容转化成新的key-value对,

  • (Hello,1)

  • (Java,1)
  • (Hello , 1)
  • (C , 1)
  • (Hello , 1)
  • (Java , 1)
  • (Hello , 1)
  • (C++ , 1)
    4.shuffle :将key相同的扔到一起去
  • (Hello , 1)
  • (Hello , 1)
  • (Hello , 1)
  • (Hello , 1)
  • (Java , 1)
  • (Java , 1)
  • (C ,1)
  • (C++,1)

注意:这一步需要移动数据,原来的数据可能在不同的datanode上,这一步过后,相同key的数据会被移动到同一台机器上。最终,它会返回一个list包含各种k-value对,即:

  • { Hello: 1,1,1,1}
  • {Java: 1,1}
  • {C: 1}
  • {C++: 1}

5.reduce:把同一个key的结果加在一起
- (Hello , 4)
- (Java , 2)
- (C , 1)
- (C++,1)

6.output:输出缩减之后的所有结果

猜你喜欢

转载自blog.csdn.net/qq_31430665/article/details/80532323