MapReduce有什么特点

这篇文章给大家分享的是有关MapReduce有什么特点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

MapReduce特点
 易于编程(熟悉之后确实很简单,大多数是map和reduce两个部分。hive和pig让mapreduce更加简单)
 良好的扩展性(简单的添加机器就可以实现)
 高容错性(job中任务部分失败,可以重新执行)
 适合PB级以上海量数据的离线处理
MapReduce不擅长
 实时计算
 像MySQL一样,在毫秒级或者秒级内返回结果(可以参考Spark或HBase,HBase随机读写性能好,统计不太好)
 流式计算
 MapReduce的输入数据集是静态的,不能动态变化
 MapReduce自身的设计特点决定了数据源必须是静态的(可以考虑Storm)
 DAG计算
 多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出(Tez)
   
MapReduce将作业的整个运行过程分为两个阶段
     Map阶段和Reduce阶段
 Map阶段由一定数量的Map Task组成
 输入数据格式解析:InputFormat
 输入数据处理:Mapper
 数据分组:Partitioner
 Reduce阶段由一定数量的Reduce Task组成
 数据远程拷贝
 数据按照key排序
 数据处理:Reducer
 数据输出格式:OutputFormat

 默认TextInputFormat对文件切分,并处理每一个Split,提供RecordReader生成key/value
    TextInputFormat:Key是行在文件中的偏移量,value是行内容若行被截断,则读取下一个block的前几个字符
    设计到的概念           
           Block
        HDFS中最小的数据存储单位默认是64MB
        Spit
        MapReduce中最小的计算单元默认与Block一一对应
        Block与Split
        Split与Block是对应关系是任意的,可由用户控制

Map阶段
 InputFormat(默认TextInputFormat)
 Mapper
 Partitioner
 Sort(可选)
 Combiner(local reducer)(可选)

Reduce阶段
 Sort
 Reducer
 OutputFormat(默认TextOutputFormat)

Combiner
    Combiner可做看local reducer合并相同的key对应的value(wordcount例子)通常与Reducer逻辑一样好处
减少Map Task输出数据量(磁盘IO)
减少Reduce-Map网络传输数据量(网络IO)
结果可叠加
Sum(YES!),Average(NO!)
Partitioner
 Partitioner决定了Map Task输出的每条数据交给哪个Reduce Task处理默认实现:hash(key) mod R R是Reduce Task数目
 允许用户自定义,很多情况需自定义Partitioner
 比如“hash(hostname(URL)) mod R”确保相同域名的网页交给同一个Reduce Task处理

MapReduce有什么特点

MapReduce有什么特点

感谢各位的阅读!关于“MapReduce有什么特点”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/230391.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论