`
小篮子java的家
  • 浏览: 31336 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

MapReduce对数据流的处理流程

阅读更多

输入数据和分片阶段:


输入数据
:根据Namenode返回的路径信息,job将输入的数据分成若干独立的数据块,将数据传送到对应的DataNode进行存储。NameNode只保存有数据的元数据,真正的数据不会经过NameNode,也不会保存在NameNode上。

切片Hadoop把输入数据根据SplitSize(设置的片的大小,默认是64M)对文件进行切分后发送到MapReduce,切分成的每一个InputSplit对应一个Map。

 

如图所示:

 


注意事项:
明确两个概念:block(块)和InputSplit(输入片)
1.block这个概念我们不陌生,是hdfs存储文件的单位(默认的64M)。
2.InputSplit是一个逻辑概念,InputSplit只记录了要处理的数据的长度和地址(对于大多数的作业,一个理想的分片往往就是block的大小64M)。

因此,以行记录为形式的文本,一行记录可能会被切成两个block,甚至被分到不同的DataNode上。某行记录同样也可能被分到两个InputSplit。这里要跟大家阐述的是,即使一行记录可能会被划分到两个不同的Inputsplit中。但是与FileInputFormat关联的RecordReader被设计的足够健壮,当一行记录跨InputSplit时,其能够到读取不同的InputSplit,直到把这一行记录读取完成。至于具体过程是怎样,恐怕要仔细的分析源代码才能够知晓。http://blog.csdn.net/wh62592855/article/details/6583364这里有源代码解析。


Mapper<将输入的数值集对转换为中间格式的数据集>


数据处理流程:
Mapper包括5个主要的阶段Map,partion,sort,spill,merge几个主要过程
执行Map任务的节点和输入数据存储的节点是同一个节点,Map将数据计算后先放在内存中(内存的默认大小为100M当然这是可以设置的),当内存中的数据超过一定的百分比(默认的80%当然也可以进行设置)时才spill到本地磁盘,当Maptask计算部分结束后,Map在正常结束之前,会将这些spill合并(merge)成一个。
parting是通过hash函数对数据进行分区,将来会交给同一个reduce处理。因为不同的DataNode会产生具有相同的key的中间记录,而reduce的计算必须包含同一个key的所有values。sort是对数据进行排序。类似<key values>---<key (list of values)>。这里partion和sort具体的发送阶段,根据部分书籍记载,应该是发生在spill to disk之前。


具体流程如图:

 

注意事项:
1:可以自定义一个combiner,可以对中间过程的输出进行聚集,
2:程序也可以通过jobconf控制对这些中间结果进行压缩两者都可以降低从mapper到reducer数据传输量,
3:Map的输出结果是存储在本地。


Reducer<将中间格式的数值集(归约)reduce为更小的数值集>


数据处理流程
reducer包括3个主要的阶段 shuffle,sort,reduce
shuffle:可以理解为洗牌,将各Mapper中的输出结果对应的分区交给之前partion部分确定好的reduce。
sort:可以理解为排序,mapper的输出结果虽然已经排好序了,但是不同Mapper可能会有相同的key。
reduce:可以理解为归约,即对<key(list of values)>中的list of values进行计算然后输出想要的数据集。

注意事项:
1:所有reduce可以在maps一结束就立即启动,
2:shuffle和sort过程是同时进行的,reducer的输出是没有排序的,
3:reducde的输出结果通常存储在HDFS上。

 

本文如有错误之处,请各位大侠多加提点,不甚感激!

分享到:
评论

相关推荐

    大数据处理流程.pdf

    使⽤Flume可以收集诸如⽇志、时间等数据并将这些数据集中存储起来供下游使⽤(尤其是数据流 框架,例如Storm)。和Flume类似的另⼀个框架是Scribe(FaceBook开源的⽇志收集系统,它为⽇志的分布式收集、统⼀处理提供...

    Hadoop海量网络数据处理平台的关键技术

    同时,本文基于Mahout技术实现了这两个分类算法在MapReduce框架上的海量数据流的分类计算,极大地提高了异常流量检测的效率。最后通过实验证明,基于分类器联合的分布式异常流量检测算法可以快速有效地对海量网络数据流...

    基于大数据的数据分析系统架构.doc

    (三)Lambda数据分析结构 在大数据分析系统中Lambda架构是比较重要的一种数据分析架构方式,大多数 的架构都是基于这种架构,Lambda架构的数据通道分为两个:实时数据流分析和离线数 据分析,实时数据流的分析架构...

    基于大数据下的spark快速大数据分析.pdf

    同时 Spark 还可以让使用者们简单而低消耗地将各种处理流程 整合到一起,这样既满足了对实时计算以及实时处 理的要求, 还减轻了对各种平台分别管理的负担[1]。 1 Spark 的五大组件 在 spark Core 中实现了 Spark 的...

    基于大数据平台数据分析技术选型调研.pdf

    能处理循环迭代式数据流处理 2. 适⽤于多并⾏的数据可复⽤场景(如:机器学习、图挖掘算法、交互式数据挖掘算法) 3. RDD提供了⽐MapReduce 丰富的模型,可以快速在内存中对数据集进⾏多次迭代,来⽀持复杂的数据...

    方案-数据治理解决方案V1.pptx

    数据治理是指从使用零散数据变为使用统一主数据、从具有很少或没有组织和流程治理到企业范围内的综合数据治理、从尝试处理主数据混乱状况到主数据井井有条的一个过程。随着 Hadoop 技术的提升,数据如何进来,如何...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源 2.3 将数据导出Hadoop 2.3.1 将数据...

    大数据架构师应该做到的.pdf

    Ambari Metrics(监控平台各类服务及主机的运⾏情况) Ambari Infra Zookeeper(基础分布式保证⼯具) Solr(搜索应⽤ 操作⽇志存储) 8)Data operation platform(数据操作平台) NiFi(数据 ETL 数据流处理) ⽇志清洗 业务...

    Hadoop实战(第2版)

    大数据模式4 处理大数据的MapReduce 模式4.1 Join4.1.1 Repartition Join技术点19 优化repartition join 4.1.2 Replicated Join 4.1.3 Semi-join技术点20 实现semi-join4.1.4 为你的数据挑选最优的...

    大数据的基础知识.pdf

    4 Storm Storm⽤于"连续计算",对数据流做连续查询,在计算时就将结果以流的形式输出给⽤户。 5 Spark Spark是当前最流⾏的开源⼤数据内存计算框架。可以基于Hadoop上存储的⼤数据进⾏计算。 6 Oozie Oozie是⼀个...

    Chapter8-厦门大学-林子雨-大数据技术原理与应用-第八章-流计算(新)

    首先介绍流计算的基本概念和需求,分析了MapReduce框架为何不适合处理流数据...然后,阐述了流计算的处理流程和可应用的场景;接着介绍了流计算框架Storm的设计思想和架构设计;最后,通过实例来加深对Storm框架的了解

    大数据开发的技巧总结以及入门教程知识点总结.docx

    实时处理:掌握流式数据处理技术,如Apache Kafka、Storm或Flink的实时流处理。 批处理作业:能够设计和编写高效的大规模批处理作业,优化Job流程。 SQL on Big Data:掌握Hive、Spark SQL、Impala等SQL-on-Hadoop...

    Scala基础(11) 运行基本流程及RDD

    使用内存构建弹性分布式数据集RDD,对数据进行运算和cache 编程范式:Map+Reduce DAG:Transformation+Action 计算中间结果写入磁盘,IO及序列化、反序列化代价大 计算中间结果在内存中维护,存取速度比磁盘高几...

    大数据概述——精选推荐.pdf

    ⼤数据计算模式: ⼤数据计算 模式 解决问题 代表产品 批处理计算 针对⼤规模数据的批量处理 MapReduce、Spark等 流计算 针对流数据的实时计算 Storm、S4、Flume、Streams、Puma、DStream、SuperMario、银河流 数据...

    厦门大学-林子雨-大数据技术原理与应用-上机练习-大数据技术与流量分析-流量异常检测

    首先介绍流计算的基本概念和需求,分析了MapReduce框架为何不适合处理流数据...然后,阐述了流计算的处理流程和可应用的场景;接着介绍了流计算框架Storm的设计思想和架构设计;最后,通过实例来加深对Storm框架的了解

    数据管道项目:数据管道项目

    分布式系统中的状态流处理 数据源 kafka,FLume,TCP套接字等 阿帕奇风暴 风暴集群模式(分布式模式) 多机风暴集群 动物园管理员,雨云和主管 风暴客户 启动Apache Storm 启动Zookeeper流程 ../zookeeper/bin/./zk...

    大数据技术概述.pdf

    Pig数据流处 理,数据清洗转换。Mahout数据挖掘的算法库,实现常⽤数据挖掘算法(分类、聚类、回归等),调⽤接⼝,传⼊参数,减少⼯作量,针 对海量数据进⾏数据挖掘分析。Ambari⾃动化的安装部署配置管理Hadoop...

    FocusBigData:【大数据成神之路学习路径+面经+简历】

    HDFS数据读写流程 NameNode和SecondearyNameNode NameNode故障处理 集群安全模式 DataNode相关概念 HA高可用 HA高可用 --- HDFS-HA集群配置 HA高可用 --- YARN-HA集群配置 HA高可用 --- Federation架构设 MapReduce...

    大数据与Hadoop.doc

    除了Hadoop,还有用于处理流数据的Storm、处理关系型数据的O racle、处理实时机器数据的Splunk……目前主流的大数据系统很多,Hadoop只是其中的代 表。 2.1 Hadoop的核心模块 Hadoop Common:Hadoop的公用应用模块,...

Global site tag (gtag.js) - Google Analytics