Hadoop权威指南(第三版)学习笔记之一初识Hadoop
来源:互联网 发布:学服装设计软件 编辑:程序博客网 时间:2024/06/05 20:16
第1章 初识Hadoop
1.1 数据!数据!
大数据1ZB=1000EB=10^6^PB=10^9^TB=10^21^ 字节,相当于世界上每个人一个硬盘驱动器所能容纳数据的数量级。推荐系统中“大量数据胜于好的算法”。
1.2 数据存储与分析
1TB硬盘,按其传输熟读约为100MB/s来算,读取整个硬盘数据需要约2.5h,但是将相同内容存放在100个硬盘中,每个存储1%,并行读取,用时不超过2min。实际情况下,可以存储100个数据集,每个1TB,实现共享硬盘的访问,可以大大缩短数据分析时间(统计角度来看,用户的分析工作时间不同,干扰不大)。
问题1-1:实现多个硬盘的并行读写,需解决问题?
(1)硬件故障。需要对数据进行备份:系统保存数据的冗余副本,发生故障会,可以使用数据的另一可用复本。例如,Hadoop的文件系统,HDFS也是其中一类。
(2)大多数任务需要结合大部分数据共同完成。各种分布式系统允许结合多个来源的数据实现分析,但保持正确性是一个重要问题。
MapReduce提出了一个编程模型,将上述硬盘读写问题进行抽象,转换为对一个数据集(键值对形式)的计算,只有map和reduce这两部分提供对外的接口。Hadoop提供了一个可靠的共享存储和分析系统。核心:HDFS实现存储和MapReduce实现分析处理。
1.3 相较与其他系统的优势
MapReduce:每个查询需要处理整个数据集(或大部分),是一个批量查询处理器,而且能够在合理的时间范围内处理针对整个数据集的即时查询(用时短)。
1.3.1 关系型数据库管理系统
问题1-2:为什么不能用数据库来对大量硬盘上的大规模数据进行批量分析?
(1)因为寻址时间的提高远慢于传输速率的提高。寻址:是将磁头移动到特定硬盘位置进行读写操作的过程。它是导致硬盘操作延迟的主要原因,而传输速率取决于带宽。
(2)如果数据访问模式中包含大量的硬盘寻址,必然会耗费大量时间(相较于流数据读取模式,流读取主要取决于传输速率)。
关系型数据库和MapReduce差异性如下,MapReduce适合批处理需要分析整个数据集的问题,尤其是动态分析,RDBMS是用于与点查询和更新;二者另一个区别是他们操作的数据集的结构化程度。
问题1-3:数据集有几种结构化程度?
(1)结构化数据:具有既定格式的实体化数据,如XML文档。
(2)半结构化数据:比较松散,容易被忽略,只能用在对数据结构的一般指导,如一张电子表格
(3)非结构化数据:没有特别内部结构,如纯文本或属相数据。
MapReduce对非结构化数据和半结构化数据非常有效,因为在处理数据时才对数据进行解释,即MapReduce输入的键和值并不是数据固有属相,而是由分析人员选择的。关系型数据往往是规范的,规范化不适应MapReduce,因为它使记录读取成为本地操作,而MapReduce是进行高速的流读写操作。Web服务器日志是典型的非规范化数据记录,因此MapReduce非常适用分析各种日志文件。
MapReduce是一种线性的可伸缩模型,其中包括map函数和reduce函数,每个函数定义一个键值对集合到另一个键值对集合的映射。
1.3.2 网格计算
高性能计算和网格计算,主要使用类似于消息传递接口的API(MAPI)。高性能计算是将将作业分散到集群的各台机器上,适用于计算密集型作业,如果节点需要访问的数据更庞大,很多计算机节点就会被网络带宽所影响。
MapReduce在计算节点上存储数据,以实现数据本地的快速访问。数据本地化是MapReduce的核心特征。另外,MapReduce通过显示网络拓扑结构来保留网络带宽(网络带宽是数据中心最珍贵的资源),但这种排列方式并没有降低MapReduce对计算密集型数据进行分析的能力。
MapReduce 的无共享框架使系统能够检测到并重新执行那些失败的map或reduce任务(各任务是彼此独立的),因此不必担心系统部分失效问题。
问题1-4:MapReduce任务彼此独立性的理解? MapReduce系统控制着mapper输出结果传给reducer的过程。这种情况下,重新运行reducer比重新运行mapper要小心,因为reducer运行需要获取必要的mapper,如果没有,必须再次运行对应的mapper,重新生成输出结果。
MapReduce的严格编程模型:限定用户使用有特定关联的键值对,mapper和reducer彼此间的协调非常有限(每个mapper将键值对传给reducer)。
问题1-5:MapReduce的应用场景?
(1)由谷歌开发,用于构建搜索引擎的索引(函数式编程、分布式计算和数据库)
(2)图像图形分析的问题
(3)机器学习算法
1.3.3 志愿计算
MapReduce三大设计目标:
(1)为只需几分钟或几小时就可以完成的作业提供服务;
(2)运行与同一个内部有高数网络连接的数据中心内;
(3)数据中心内的计算机都是可靠的、定制的硬件。
1.4 Hadoop发展简史
Hadoop是Apache Lucene创始人创建,Lucene是一个文本搜索系统库。Hadoop起源于网络搜索引擎Apache Nutch(Lucene一部分)。2008年以后,Hadoop称为最快的TB级数据排序系统。
1.5 Apache Hadoop和Hadoop生态系统
- Hadoop权威指南(第三版)学习笔记之一初识Hadoop
- 菜鸟学习笔记--《Hadoop权威指南(第三版)》笔记
- hadoop权威指南笔记之初识hadoop
- hadoop 权威指南【第三版】
- 【Hadoop权威指南】初识Hadoop
- 《hadoop权威指南》学习笔记
- 《hadoop权威指南》学习笔记
- Hadoop权威指南 第三章笔记
- Hadoop权威指南第三章笔记
- 笔记:Hadoop权威指南 第1章 初识Hadoop
- hadoop学习笔记之一:初识hadoop
- Hadoop权威指南笔记
- hadoop权威指南第三版 发布说明
- 《Hadoop权威指南》- 1、初识Hadoop
- Hadoop权威指南学习笔记整理
- Hadoop权威指南学习笔记一
- Hadoop权威指南学习笔记二
- Hadoop权威指南学习笔记三
- 回数是指从左向右读和从右向左读都是一样的数,例如 12321 , 909 。请利用 filter() 滤掉非回数
- docker 搭建php环境 初学笔记
- test
- table显示n条记录,每三行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红色字体
- Java多线程编程-(4)-线程间通信机制的介绍与使用
- Hadoop权威指南(第三版)学习笔记之一初识Hadoop
- xshell或者putty远程连接阿里云服务器出现connection failed错误
- 基于ubuntu构建高可用ZooKeeper集群
- 简述数据库锁
- c++入门2---while循环的使用
- 字符编码:ASCII,Unicode和UTF-8
- LINUX基本命令
- kill signal说明
- java 单例模式介绍