Hadoop基本原理之一:MapReduce
1、为什么需要Hadoop
目前,一块硬盘容量约为1TB,读取速度约为100M/S,因此完成一块硬盘的读取需时约2.5小时(写入时间更长)。若把数据放在同一硬盘上,且全部数据均需要同一个程序进行处理,此程序的处理时间将主要浪费在I/O时间上。
在过去几十年,硬盘的读取速度并未明显增长,而网络传输速度此飞速上升。
因此,若把数据分散到多个硬盘上进行存储(如分成100份存储在100个硬盘上),则读取数据所需时间大大减少,并将各节点处理好的结果通过网络进行传输。
但这将导致2个问题
(1)数据被分散到多个硬盘中,某个盘发生故障导致部分数据出错的可能性大大增加,因此需要对数据进行复制备份======>> HDFS!!
(2)数据分散在多个盘,一般会在本地进行初步处理,,如何将处理结果进行合并============>>MapReduce!!!
2、基本节点
在Hadoop中,主要有以下5类节点:
(1) JobTracker
(2) TaskTracker
(3) NameNode
(4) DataNode
(5) SecondaryNameNode
3、零碎理论
(1)Hadoop将MapReduce的输入分成固定大小的切片,称为input split。大多数情况下,切片的大小与HDFS块的大小相等(默认情况下是64M)。
(2)
4、本地数据优先
Hadoop倾向于在存储数据的节点上进行map处理,这称为data locality optimization。
(1)首先,hadoop倾向于将数据在本地节点进行数据,如图中的a.
(2)若存储数据的节点有其它task正在进行处理,则在本机架内寻找另一个节点进行数据处理,如图中b。
(3)若本机架内所有节点均有task正在进行处理,则在其它机架内寻找节点进行数据处理。
5、MapReduce的数据流向
(1)单reducer情况
(2)多reducer情况
6、Combiner
在map与reduce之间,可以增加combiner函数,对map产生的结果进行预处理。
Hadoop基本原理之一:MapReduce的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)
转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...
- 每天收获一点点------Hadoop之初始MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...
- Hadoop权威指南:MapReduce应用开发
Hadoop权威指南:MapReduce应用开发 [TOC] 一般流程 编写map函数和reduce函数 编写驱动程序运行作业 用于配置的API Hadoop中的组件是通过Hadoop自己的配置API ...
- hadoop系列三:mapreduce的使用(一)
转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/7224772.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的 ...
- hadoop系列四:mapreduce的使用(二)
转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- 初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- Hadoop生态圈-使用MapReduce处理HBase数据
Hadoop生态圈-使用MapReduce处理HBase数据 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对HBase表中数据进行单词统计(TableInputFormat) ...
- [hadoop][基本原理]zookeeper简单使用
代码:https://github.com/xufeng79x/ZkClientTest 1.简介 zookeeper的基本原理和使用场景描述可参考:[hadoop][基本原理]zookeeper基本 ...
随机推荐
- js学习笔记——数组方法
join() 把数组中所有元素转化为字符串并连接起来,并返回该字符串, var arr=[1,2,3]; var str=arr.join("#"); //str="1# ...
- 转载:spring ,struct2 在 web.xml中的配置
转载网址:http://blog.sina.com.cn/s/blog_4c6e822d0102dv63.html <!-- Struts2 need begin--> <filt ...
- 转载:JAVA中使用JSON进行数据传递
转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...
- Apache之AllowOverride参数详解
通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里.但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对 ...
- Sphinx编译docs文档
在使用Python.Django的过程中,经常看到docs目录,里面存放着一些txt文本文件,也就是自带的一些帮助文档,里面有make.bat,在dos目录下直接执行make,给出的帮助是可以转换成H ...
- Okhttp3日志采集功能
原文地址以示尊重:http://www.jianshu.com/p/d836271b1ae4 日志采集是一个APP必备的功能,可以方便开发人员快速定位问题,解决问题,那么我们在使用okhttp的时候应 ...
- web.xml 3.0头部模板
<?xml version=”1.0″ encoding=”UTF-8″?><web-appversion=”3.0″xmlns=”http://java.sun.com/xml/n ...
- 手绘经典QQ头像 请让我一个人呆一会
- 如何备份及恢复Linux文件权限
你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备 ...
- jsp中iframe所包含的页面调用父页面的function方法
a.jsp中写了注册的Ext窗体loginWindow,也用iframe包含了另一个b.jsp,当在b.jsp中也有点击注册的链接,这时需要用到调用a.jsp中的loginWindow,因为如果你重新 ...