Hadoop mapreduce 浑身都是芝士点
一 使用mapreduce实现分布式计算
1.什么事mapreduce?
源于google 的mapreduce 论文发表 Hadoop mapreduce 是Google mapreduce 的克隆版。
优点 易于编程
内部负责的操作,都是由框架本身去完成的,留给我们开发的内容少之又少(逻辑)
2.良好的扩展性:
随着我们业务或者需求的增加,集群的存储能力或者计算能力,又可能下降,这样我们可以通过增加集群的节点来解决
JobTracker:工作跟踪者
管理所有的作业job,存储在master节点上
将作业分解成一系列的任务
将任务指派给TaskTracker
作业/任务监控,错误处理等
TaskTracker:
存在slave节点上
运行Map Task和Reduce Task
与JobTracker交互,执行命令,汇报任务状态(心跳)
mapreduce 编程模型
input就是我们需要计算的海量数据文件
Splitting,就是把数据分割成一片一片的数据
mapping:就是计算每片数据的文件
Combiner:Combinder 对一个输出作用就是在map端做一次合并,减少本地磁盘10
Final result: 把最终的结果输出到HDFS文件系统中
Reducing:把Shuffing的数据进行汇总
思想就是分而治之
MapReduce的思想就是“分而治之”
***********map
就是“分”将复杂的数据分解成若干个,“简单的任务去执行”
可以并行计算,彼此之间没有依赖关系
reducer 就是负责对“合”汇总
(reducer的数目是由mapred-site.xml配置文件中的mapred.reduce.tasks决定的)所以这些都是mapreduce机制帮我们做出来的 计算
.WordCount案例解析
Hadoop数据类型:
IntWritable 是hadoop中的基本数据类型!整型数!
LongWritable:长整型数
FloatWritable:浮点数
DoubleWritable:双字节数
ByteWritable:单字节,对应byte类型
BytesWritable:字节数组,对应byte[]