MapReducer是一种编程模型 面向大数据并行处理的一种计算模型,框架和平台

基本特点:

        分布可靠,对数据集的操作分发给多个集群中的多个节点实现可靠性,每个节点周期性返回它完成的任务和最新状态

        封装实现了细节,基于框架API编程,面向业务 展开分布式编码

提供跨语言编程的能力

运行流程:

map阶段和reducer阶段

map:由map task组成

输入数据解析格式InputFormat

输入数据处理 Mapper

数据区分 Partitioner

数据按照key排序

本地规约 Combiner

将任务输出保存到本地

Reducer阶段有Reducer task组成

数据远程拷贝

数据按照key排序和文件合并merge

数据处理 Reducer

数据输出格式 OutputFormat

MapReduce开发流程:

搭建开发环境,参考HDFS环境搭建 基本一致

基于MapReducer框架编写代码 Map Reducer Driver三部分组成

编译打包 将源代码打成的包和依赖jar包打成一个包

上传至运行环境

运行hadoop jar命令 现已有yarn jar 替代 建议使用新命令提交执行

Map类编写

mapper:对map过程的封装
Text:Hadoop对Java String类的封装,适用于Hadoop对文本字符串的处理
IntWritable:Hadoop对Java Integer类的封装,适用于Hadoop整型的处理
Context:Hadoop环境基于上下文的操作对象,如Map中key/value的输出、分布式缓存数据、分布式参数传递等
StringTokenizer:对String对象字符串的操作类,做基于空白字符的切分操作工具类
 

 Reduce类编写

Reducer:是MapReduce计算框架中Reduce过程的封装

Driver类编写

Configuration:与HDFS中的Configuration一致,负责参数的加载和传递
Job:作业,是对一轮MapReduce任务的抽象,即一个MapReduce的执行全过程的管理类
FileInputFormat:指定输入数据的工具类,用于指定任务的输入数据路径
FileOutputFormat:指定输出数据的工具类,用于指定任务的输出数据路径
 

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐