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 及 Hive 简介
作者 | 李一帆 杏仁Java工程师.关注后端开发. 1.计算框架 Hadoop 是一个计算框架,目前大型数据计算框架常用的大致有五种: 仅批处理框架:Apache hadoop. 仅流处理框架:Ap ...
- 初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- 文件数据云计算学习笔记---Hadoop HDFS和MapReduce 架构浅析
本文是一篇关于文件数据的帖子 媒介 Hadoop是一个基于Java的分布式麋集数据处理和数据分析的软件框架.Hadoop在很大程度上是受Google在2004年白皮书中论述的MapReduce技术的启 ...
- 如何在Hadoop上编写MapReduce程序
1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...
- Hadoop+eclipse运行MapReduce程序
前面,我们已经通过eclipse下安装Hadoop的插件配置好了基于Hadoop+eclipse的MapReduce开发环境.现在,我们在这个Hadoop+eclipse环境下运行MapReduce程 ...
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)
从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起 ...
- Hadoop学习之MapReduce
Hadoop学习之MapReduce 目录 Hadoop学习之MapReduce 1 MapReduce简介 1.1 什么是MapReduce 1.2 MapReduce的作用 1.3 MapRedu ...
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- Hadoop 2.x MapReduce(MR V1)字数统计示例
Before reading this post, please go through my previous post at "How MapReduce Algorithm Works& ...
- hadoop系列四:mapreduce的使用(二)
转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...
最新文章
- sql server 2000 版本查询
- Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类
- Maven(七) maven 常用命令
- 学习python需要什么基础-学习python需要什么基础吗?老男孩Python
- RFID系统集成公司
- NDK 与 JNI 的关系
- 应用adb发布apk到android avd模拟器
- vijos P1009清帝之惑之康熙
- Linux上层应用--git独奏
- VB窗体控件设计登录注册页面
- ogg格式怎么转换为mp3?
- 人工智能如何影响5G网络标准?
- 世界上最大的二房东上市了
- 静校正问题及其深度学习方法
- 多种消息提醒系统的设计模式、实现方案(附功能截图+表结构)
- Java中File文件类之文件过滤器
- 刷宝短视频Auto.js挂机源码讲解
- 怎么样禁止鼠标和键盘唤醒win7系统睡眠模式转载
- 简单的云平台基础环境的构建(一)
- C语言调用函数时参数传递实测(好久以前记录的)
热门文章
- 17行代码AC_51Nod - 2133 排队接水(贪心)
- 小白也能看懂——使用dev-c++建立工程(多个文件一同编译连接)并运行
- 风险评估资产重要性识别_如何有效的进行风险评估?
- margin塌陷与margin合并、浮动流
- css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?
- 制作css开关,纯css实现开关效果
- matlab怎么画单位圆的切线,matlab绘图曲线标注怎么输出角度单位,就是那个小圆圈?...
- cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记
- 是什么包_包粽子教程,喜欢的收藏,以后想吃什么样的都可以自己包
- xms和xmx为什么要相同_股民为什么要做股票配资?