是一个分布式的编程框架,MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 优点: 易于编程,简单的实现一些接口,就可以完成一个分布式程序。 良好的扩展性,可以增加机器来扩展计算能力。 高容错性,子任务失败后可以重试4次。 缺点: 不擅长实时计算 不能进行流式计算,MapReduce的输入数据集是静态的,不能动态变化。 不擅长DAG有向无环图:下一段计算的起始数据取决于上一个阶段的结果。 Map: 读单词,进行分区 Shuffle:排序是框架内固定的代码,必须排序。进行快排 Reduce:对区间有序的内容进行归并排序,累加单词 在MapReduce过程中只能有一个Map和一个Reduce MapReduce进程 MrAppMaster:负责整个程序的过程调度及状态协调。 MapTask:负责Map阶段的整个数据处理流程。 ReduceTask:负责Reduce阶段的整个数据处理流程。 序列化 变量类型后面加上Writable,转换成可以序列化的类型...