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产生的结果进行预处理。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. ubuntu 14.04 以root权限启动chrome
  2. 《AngularJS权威教程》中关于指令双向数据绑定的理解
  3. kvm虚拟化平台搭建入门
  4. PYTHONPATH 可以跨版本 方便使用 (本文为windows方法)转~
  5. HDU 1241 (DFS搜索+染色)
  6. daemon
  7. 04_HttpClient发送Https请求
  8. centos 安装 mongo3.0
  9. 【HDU】1754 I hate it ——线段树 单点更新 区间最值
  10. 02--Java TCP Socket编程
  11. gcd-函数
  12. EF+SQLSERVER控制并发下抢红包减余额(改进)
  13. Failed while installing Dynamic Web Module 3.0
  14. 【题解】Luogu P1503 鬼子进村
  15. flask之表单验证 2018.12.23
  16. Django 实现CRM 问卷调查功能组件
  17. 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
  18. java与Excel (.xls文件) ---使用JXL创建,增添表格文件
  19. Redis教程基本命令
  20. struts2拦截器和过滤器区别

热门文章

  1. 非对称算法,散列(Hash)以及证书的那些事
  2. matlab 构建数据集实用 api
  3. 28.lambda表达式与多线程
  4. NET Framework 4.5 有更加简便的方法 Task.Run()
  5. BZOJ3192: [JLOI2013]删除物品(splay)
  6. STM32 之ADC单次转换模式和连续转换模式
  7. Android实现点击通知栏后,先启动应用再打开目标Activity
  8. 1.Dubbo教程
  9. 1.1 Introduction中 Producers官网剖析(博主推荐)
  10. <%%>创建内联代码块(表达式)