文章目录
Hadoop系列文章
Hadoop(一):在CentOS中搭建hadoop环境(伪分布式)
Hadoop(二):完全分布式搭建(腾讯云服务器+阿里云服务器)
MapReduce概念
Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。
MapReduce擅长处理大数据,思想就是分而治之。
Mapper负责“分”,即把复杂的任务分解为若干个简单的任务来处理:
- 缩小原任务的数据计算规模。
- 就近计算原则,任务会分配到存放着所需数据的节点上进行计算。
- 这些小任务可以并行计算,彼此间几乎没有依赖关系
Reducer负责对map阶段的结果进行汇总,Reducer个数,通过mapred-site.xml
配置文件里设置参数mapred.reduce.tasks
的值,默认值为1。
MapReduce工作原理
MapReduce这个术语来自两个基本的数据转换操作:map过程和reduce过程。
map过程:
即键值对的转换。map操作会将集合中的元素从一种形式转化成另一种形式,在这种情况下,输入的键值对会被转换成零到多个键值对输出。
reduce过程:
某个键的所有键值对都会被分发到同一个reduce操作中,也就是说,这个键和这个键所对应的所有值都会被传递给同一个Reducer。reduce过程的目的是将值的集合转换成一个值(例如求和或者求平均),或者转换成另一个集合。这个Reducer最终会产生一个键值对。