简述MapReduce数据流
目前it基本都是一个套路,获得数据然后进行逻辑处理,存储数据。
基本上弄清楚整个的数据流向就等于把握了命脉。
现在说说mapreduce的数据流
1、首先数据会按照TextInputFormat按照特定的文本输入格式被处理成两个InputSplit,当然一般是这样,每增加一个块分区(Block,简单的说是几个文件我是这么理解的)就会加一个InputSplit。
2、然后将InputSplit分割的内容输入到相应的Map中(map会读取inputSplit指定位置的数据),有几个InputSplit就有几个Map
3、在Map里面进行处理的时候首先会将分割的内容放进去,并转换成方便处理的格式然后写入到本地磁盘中,简单点说就是将标准的输入格式,处理成标准的输出格式(我的理解是,处理方式都是死的,是按照一定的格式才能进行处理,包括成为key value对,也是一种格式。只有转换成特定的格式,才能进行批处理。否则容易出问题)。然后进行Map处理成key/value 。
4、在Map处理成规定的key/value后,数据进入shuffle,里面会自动进行归类。比如说我读入数据是(key,value)就会处理称为 (key,value_list),将相同的key进行合并,值组成一个列表。
5、然后传入reduce处理,在reduce中会将数据进行整合,一般可以在这里将不同文件的数据进行笛卡尔积,说是这么说,其实就是把数据对应的拿出来,按照key相同值处理的方式进行遍历处理。这里面一般key是两个文件的数据的主外键,然后value是你想笛卡尔积获得的数据。官方说法是合并value。然后弄成标准输出格式丢掉HDFS中落地成为文件。这里面的落地会占用很多网络宽带,和上传数据一样的,主要和存储机制nameNode和dataNode有关,简单点原数据存储地方不一样,现在撸过来一起处理加上里面我用java写的程序也是标准的文件输入输出流。这个是不可避免的。
简述MapReduce数据流的更多相关文章
- MapReduce数据流(一)
在上一篇文章中我们讲解了一个基本的MapReduce作业由那些基本组件组成,从高层来看,所有的组件在一起工作时如下图所示: 图4.4高层MapReduce工作流水线 MapReduce的输入一般来自H ...
- MapReduce数据流
图4.5细节化的Hadoop MapReduce数据流 图4.5展示了流线水中的更多机制.虽然只有2个节点,但相同的流水线可以复制到跨越大量节点的系统上.下去的几个段落会详细讲述MapReduce程序 ...
- 简述MapReduce计算框架原理
1. MapReduce基本编程模型和框架 1.1 MapReduce抽象模型 大数据计算的核心思想是:分而治之.如下图所示.把大量的数据划分开来,分配给各个子任务来完成.再将结果合并到一起输出.注: ...
- MapReduce数据流(二)
输入块(InputSplit):一个输入块描述了构成MapReduce程序中单个map任务的一个单元.把一个MapReduce程序应用到一个数据集上,即是指一个作业,会由几个(也可能几百个)任务组成. ...
- 理解hadoop的Map-Reduce数据流(data flow)
http://blog.csdn.net/yclzh0522/article/details/6859778 Map-Reduce的处理过程主要涉及以下四个部分: 客户端Client:用于提交Map- ...
- MapReduce数据流-输出
- MapReduce数据流-Reduce
- MapReduce数据流-Partiton&Shuffle
- MapReduce数据流-Mapper
随机推荐
- Dart编程实例 - Final 关键字
Dart编程实例 - Final 关键字 void main() { final val1 = 12; print(val1); } 本文转自:http://codingdict.com/articl ...
- 基于mybatis-plus的代码生成
基于mybatis-plus的代码生成 前言 随着敏捷开发模式的推广,伴着日益增长的需求,日常工作中我们越来越注重效率和便捷性.今天我们就来探讨下如何自动生成代码,准确地说是如何依赖数据库生成我们的e ...
- 浏览器表单默认记忆功能input的 autocomplete="off"属性
一般情况下浏览器会有自动记录密码等的功能,但是有时候我们不需要这样的功能,下面有两种情况下关闭记忆功能有效: 1:在form中,如果有input[type=password],autocomplete ...
- cdn 链接
1.jquery : http://www.jq22.com/cdn/ 2.常用前端库引用地址 : http://www.jq22.com/jquery/jquery.html 3.vC ...
- 火狐RESTClient和HttpRequester, Chrome的Postman使用详解
Chrome下有著名的Postman,那火狐也有它的左膀右臂,那就是RESTClient和HttpRequester.这两款工具都是火狐的插件,主要用来模拟发送HTTP请求,HTTP请求最常用的两种方 ...
- Java-Class-C:com.github.pagehelper.PageInfo
ylbtech-Java-Class-C:com.github.pagehelper.PageInfo 1.返回顶部 2.返回顶部 1.1. import com.github.pagehelpe ...
- GF学习未解之谜
1.很奇怪事件管理器里面的用到的订阅事件里面的ID是通过typeof(xxx).GetHashCode()得到的,怎么解决id重复的问题? 2.log系统里面是不是直接全部当做多参数解决问题比较好?
- FreeBSD_11-系统管理——{Part_9-SVN}
一.使用 svn / svnlite 代替 freebsd-update 及 portsnap 等常规工具更新系统及 ports 源码 二.安装可信 ca 机构列表 cd /usr/ports/sec ...
- MySql 主从复制及深入了解
分享一个不错的mysql文章 https://segmentfault.com/a/1190000008942618
- 47-Ubuntu-系统信息-2-df和du查看磁盘和目录空间占用
序号 命令 作用 01 df -h disk free 显示磁盘剩余空间;-h以人性化的方式显示文件大小 02 du -h [目录名] disk usage 显示目录下的文件大小 注:显示磁盘信息的时 ...