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相关推荐

  1. Hadoop 生态之 MapReduce 及 Hive 简介

    作者 | 李一帆 杏仁Java工程师.关注后端开发. 1.计算框架 Hadoop 是一个计算框架,目前大型数据计算框架常用的大致有五种: 仅批处理框架:Apache hadoop. 仅流处理框架:Ap ...

  2. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  3. 文件数据云计算学习笔记---Hadoop HDFS和MapReduce 架构浅析

    本文是一篇关于文件数据的帖子 媒介 Hadoop是一个基于Java的分布式麋集数据处理和数据分析的软件框架.Hadoop在很大程度上是受Google在2004年白皮书中论述的MapReduce技术的启 ...

  4. 如何在Hadoop上编写MapReduce程序

    1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...

  5. Hadoop+eclipse运行MapReduce程序

    前面,我们已经通过eclipse下安装Hadoop的插件配置好了基于Hadoop+eclipse的MapReduce开发环境.现在,我们在这个Hadoop+eclipse环境下运行MapReduce程 ...

  6. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)

    从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起 ...

  7. Hadoop学习之MapReduce

    Hadoop学习之MapReduce 目录 Hadoop学习之MapReduce 1 MapReduce简介 1.1 什么是MapReduce 1.2 MapReduce的作用 1.3 MapRedu ...

  8. 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  9. Hadoop 2.x MapReduce(MR V1)字数统计示例

    Before reading this post, please go through my previous post at "How MapReduce Algorithm Works& ...

  10. hadoop系列四:mapreduce的使用(二)

    转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...

最新文章

  1. sql server 2000 版本查询
  2. Java格式化日期用斜杠_[java工具类01]__构建格式化输出日期和时间的工具类
  3. Maven(七) maven 常用命令
  4. 学习python需要什么基础-学习python需要什么基础吗?老男孩Python
  5. RFID系统集成公司
  6. NDK 与 JNI 的关系
  7. 应用adb发布apk到android avd模拟器
  8. vijos P1009清帝之惑之康熙
  9. Linux上层应用--git独奏
  10. VB窗体控件设计登录注册页面
  11. ogg格式怎么转换为mp3?
  12. 人工智能如何影响5G网络标准?
  13. 世界上最大的二房东上市了
  14. 静校正问题及其深度学习方法
  15. 多种消息提醒系统的设计模式、实现方案(附功能截图+表结构)
  16. Java中File文件类之文件过滤器
  17. 刷宝短视频Auto.js挂机源码讲解
  18. 怎么样禁止鼠标和键盘唤醒win7系统睡眠模式转载
  19. 简单的云平台基础环境的构建(一)
  20. C语言调用函数时参数传递实测(好久以前记录的)

热门文章

  1. 17行代码AC_51Nod - 2133 排队接水(贪心)
  2. 小白也能看懂——使用dev-c++建立工程(多个文件一同编译连接)并运行
  3. 风险评估资产重要性识别_如何有效的进行风险评估?
  4. margin塌陷与margin合并、浮动流
  5. css 缩放_【开发小技巧】06—如何使用CSS在鼠标悬停时缩放图像?
  6. 制作css开关,纯css实现开关效果
  7. matlab怎么画单位圆的切线,matlab绘图曲线标注怎么输出角度单位,就是那个小圆圈?...
  8. cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记
  9. 是什么包_包粽子教程,喜欢的收藏,以后想吃什么样的都可以自己包
  10. xms和xmx为什么要相同_股民为什么要做股票配资?