第3章 Hadoop 《大数据技术基础》
《大数据技术基础》 第3 章 Hadoop
提纲 Hadoop述 Hadoop发展简史 Hadoop的功能与作用 为什么不用关系型数据库管理系统 · Hadoop优点 Hadoop的应用现状和发展趋势 Hadoop项目及其结构 Hadoop 的体系结构 Hadoop与分布式开发 Hadoop应用案例 Hadoop平台上的海量数据排序 《大数据技术基础》
《大数据技术基础》 提纲 • • • • • • • • • • • Hadoop概述 Hadoop发展简史 Hadoop的功能与作用 为什么不用关系型数据库管理系统 Hadoop优点 Hadoop的应用现状和发展趋势 Hadoop项目及其结构 Hadoop的体系结构 Hadoop与分布式开发 Hadoop应用案例 Hadoop平台上的海量数据排序
Hadoop概述 Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,它 实现了 Map/Reduce计算模型。借助于Hado,程序员可以轻松地编写分布 式并行程序,将其运行于计算机集群上,完成海量数据的计算。 Compute Cluster DI S Back I Map dats data datad OFS Blok 1 data data data data data data data data datadata Results data data data data data DFS Bkk 2 data data data data data data datadata data data DFS Bo Map Reduce data data data data data ata data data datadata DES Back2 data data data data data 山btad data data data data dara data datadata data data DFS Black 《大数据技术基础》
《大数据技术基础》 Hadoop概述 Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,它 实现了 Map/Reduce 计算模型。借助于 Hadoop, 程序员可以轻松地编写分布 式并行程序,将其运行于计算机集群上,完成海量数据的计算
Hadoop发展简史 Hadoop起源于 Apache Nutch,后者是一个开源的网络搜索引擎,本身也是由 Lucene项目的 部分 Nutch项目开始于2002年,一个可工作的抓取工具和搜索系统很快浮出水面。 2004年, Google发表了论文,向全世界介绍了 MapReduce 2005年初, Nutch的开发者在 Nutch上有了一个可工作的 MapReduce应用,到当年年中,所 有主要的 Nutch算法被移植到使用 Mapreduce和NDFS来运行。 Nutch中的NDFS和 MapReduce实现的应用远不只是搜索领域。 在2006年2月,他们从 Nutch转移出来成为一个独立的 Lucene子项目,成为 Hadoop 在2008年2月,雅虎宣布其搜索引擎产品部署在一个拥有1万个内核的 Hadoop集群上 2008年4月, Hadoop打破世界纪录,成为最快排序1TB数据的系统。运行在一个910节点的 群集, Hadoop在209秒内排序了1TB的数据(还不到三分半钟),击败了前一年的297秒冠 军。同年11月,谷歌在报告中声称,它的 MapReduce实现执行TB数据的排序只用了68秒。 在2009年5月,有报道宣称 Yahoo的团队使用 Hadoop对1TB的数据进行排序只花了62秒时间 《大数据技术基础》
《大数据技术基础》 Hadoop发展简史 • • • • • • • • Hadoop起源于Apache Nutch,后者是一个开源的网络搜索引擎,本身也是由Lucene项目的 一部分。 Nutch项目开始于2002年,一个可工作的抓取工具和搜索系统很快浮出水面。 2004年,Google发表了论文,向全世界介绍了MapReduce。 2005年初,Nutch的开发者在Nutch上有了一个可工作的MapReduce应用,到当年年中,所 有主要的Nutch算法被移植到使用MapReduce和NDFS来运行。 Nutch中的NDFS和MapReduce实现的应用远不只是搜索领域。 在2006年2月,他们从Nutch转移出来成为一个独立的Lucene子项目,成为Hadoop。 在2008年2月,雅虎宣布其搜索引擎产品部署在一个拥有1万个内核的Hadoop集群上。 2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统。运行在一个910节点的 群集,Hadoop在209秒内排序了1TB的数据(还不到三分半钟),击败了前一年的297秒冠 军。同年11月,谷歌在报告中声称,它的MapReduce实现执行1TB数据的排序只用了68秒。 在2009年5月,有报道宣称Yahoo的团队使用Hadoop对1TB的数据进行排序只花了62秒时间
Hadoop大事记 2004年——最初的版本(现在称为HDFS和 MapReduce)由 Doug Cutting和 Mike cafarella开始 实施 2005年12月— -Nutch移植到新的框架, Hadoop在20个节点上稳定运行 2006年月— Doug Cutting加入雅虎。 2006年2月— Apache Hadoop项目正式启动以支持 MapReduce和HDFS的独立发展 2006年2月—雅虎的网络计算团队采用 Hadoop 2006年4月——标准排序(10GB每个节点)在188个节点上运行479个小时。 2006年5月—雅虎建立了一个300个节点的 Hadoop研究集群。 206年5月——标准排序在500个节点上运行42个小时(硬件配置比4月的更好) 2006年11月—研究集群增加到600个节点 《大数据技术基础》
《大数据技术基础》 Hadoop大事记 2004年——最初的版本(现在称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella开始 实施。 2005年12月——Nutch移植到新的框架,Hadoop在20个节点上稳定运行。 2006年1月——Doug Cutting加入雅虎。 2006年2月——Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。 2006年2月——雅虎的网络计算团队采用Hadoop。 2006年4月——标准排序(10GB每个节点)在188个节点上运行47.9个小时。 2006年5月——雅虎建立了一个300个节点的Hadoop研究集群。 2006年5月——标准排序在500个节点上运行42个小时(硬件配置比4月的更好)。 2006年11月——研究集群增加到600个节点
Hadoop事记 2006年12月—标准排序在20个节点上运行18个小时,100个节点3.3小时,500个节点52小时, 900个节点78个小时 2007年1月—研究集群到达900个节点。 2007年4月—研究集群达到两个1000个节点的集群 208年4月——赢得世界最快ITB数据排序在900个节点上用时209秒。 2008年10月——研究集群每天装载10TB的数据。 2009年3月—17个集群总共24000台机器 2009年4月—赢得每分钟排序,59秒内排序500GB(在1400个节点上)和173分钟内排序 100TB数据(在3400个节点上)。 《大数据技术基础》
《大数据技术基础》 Hadoop大事记 2006年12月——标准排序在20个节点上运行1.8个小时,100个节点3.3小时,500个节点5.2小时, 900个节点7.8个小时。 2007年1月——研究集群到达900个节点。 2007年4月——研究集群达到两个1000个节点的集群。 2008年4月——赢得世界最快1TB数据排序在900个节点上用时209秒。 2008年10月——研究集群每天装载10TB的数据。 2009年3月——17个集群总共24000台机器。 2009年4月——赢得每分钟排序,59秒内排序500GB(在1400个节点上)和173分钟内排序 100TB数据(在3400个节点上)
Hadoop的作用与功能 Hadoop.用了分布式存储方式,提高了读写速度,并扩大了存储 容量。采用 Mapreduce来整合分布式文件系统上的数据,可保证分析 和处理数据的高效。与此同时, Hadoop还采用存储冗余数据的方式保 证了数据的安全性。 Hadoop中HDFS的高容错特性,以及它是基于Java语言开发的 ,这使得 Hadoop可以部署在低廉的计算机集群中,同时不限于某个操 作系统。 Hadoop中HDFS的数据管理能力, MapReduce处理任务时 的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩, 并在众多行业和科研领域中被广泛采用。 《大数据技术基础》
《大数据技术基础》 • Hadoop采用了分布式存储方式,提高了读写速度,并扩大了存储 容量。采用MapReduce 来整合分布式文件系统上的数据,可保证分析 和处理数据的高效。与此同时,Hadoop 还采用存储冗余数据的方式保 证了数据的安全性。 • Hadoop中HDFS 的高容错特性,以及它是基于Java 语言开发的 ,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操 作系统。Hadoop 中HDFS 的数据管理能力,MapReduce 处理任务时 的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩, 并在众多行业和科研领域中被广泛采用。 Hadoop的作用与功能
为什么不用关系型数据库管理系统 在更新一小部分数据库记录的时候,传统 RDBMS采用的B树效果 很好。但在更新大部分数据库数据的时候,B树的效率就没有 MapReduce的效率高,因为它需要使用排序/合并来重建数据库 RDBMS适合点查询和更新, Mapreduce适合批处理 RDBMS适合持续更新的数据集, Mapreduce适合数据被一次写 入多次读取的应用 RDBMS只能处理结构化数据, Mapreduce对于非结构化或半结 构化数据非常有效(避免规范化带来的非本地读问题)。 ·二者互相融合是一种趋势 传统关系型数据库 MapReduce 数据大小 访问 交互型和批处理 批处理 更新 多次读写 次写入多次读取 结构 静态模式 动态模式 集成度 高 低 伸缩性 非线性 线性 《大数据技术基础》
传统关系型数据库 MapReduce 数据大小 GB PB 访问 交互型和批处理 批处理 更新 多次读写 一次写入多次读取 结构 静态模式 动态模式 集成度 高 低 伸缩性 非线性 线性 《大数据技术基础》 • 在更新一小部分数据库记录的时候,传统RDBMS采用的B树效果 很好。但在更新大部分数据库数据的时候,B树的效率就没有 MapReduce的效率高,因为它需要使用排序/合并来重建数据库。 • • RDBMS适合点查询和更新,MapReduce适合批处理 RDBMS适合持续更新的数据集, MapReduce适合数据被一次写 入多次读取的应用 • RDBMS只能处理结构化数据,MapReduce对于非结构化或半结 构化数据非常有效(避免规范化带来的非本地读问题)。 • 二者互相融合是一种趋势 为什么不用关系型数据库管理系统
Hadoop的优点 Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种 可靠、高效、可伸缩的方式进行处理的,具有以下优点 口 Hadoop是可靠的:因为它假设计算元素和存储会失败,因此它维护多个 工作数据副本,确保能够针对失败的节点重新分布处理。 口Hado0p是高效的:因为它以并行的方式工作,通过并行处理加快处理速 度。 Hadoop还是可伸缩的,能够处理PB级数据。 口 Hadoop成本低:依赖于廉价服务器:因此它的成本比较低,任何人都可 以使用。 口运行在 Linux平台上: Hadoop带有用Java语言编写的框架,因此运行在 Linux生产平台上是非常理想的。 口支持多种编程语言: Hadoop上的应用程序也可以使用其他语言编写,比 如C++。 《大数据技术基础》
《大数据技术基础》 Hadoop的优点 Hadoop 是一个能够对大量数据进行分布式处理的软件框架,并且是以一种 可靠、高效、可伸缩的方式进行处理的,具有以下优点: Hadoop 是可靠的:因为它假设计算元素和存储会失败,因此它维护多个 工作数据副本,确保能够针对失败的节点重新分布处理。 Hadoop 是高效的:因为它以并行的方式工作,通过并行处理加快处理速 度。Hadoop 还是可伸缩的,能够处理 PB 级数据。 Hadoop成本低:依赖于廉价服务器:因此它的成本比较低,任何人都可 以使用。 运行在Linux平台上:Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。 支持多种编程语言:Hadoop 上的应用程序也可以使用其他语言编写,比 如 C++
Hadoop的应用现状和发展趋势 由于 Hadoop优势突出,基于 Hadoop的应用已经遍地开花,尤其是在互 联网领域 Yahoo!通过集群运行 Hadoop,以支持广告系统和Web搜索的研究; - Facebook借助集群运行 Hadoop,以支持其数据分析和机器学习 百度则使用Hado进行搜索日志的分析和网页数据的挖掘工作 淘宝的 Hadoop系统用于存储并处理电子商务交易的相关数据 中国移动研究院基于 Hadoop的“大云”( Bigcloud)系统用于对数 据进行分析和并对外提供服务。 Hadoop目前已经取得了非常突出的成绩。随着互联网的发展,新的业务 模式还将不断涌现, Hadoop的应用也会从互联网领域向电信、电子商务 、银行、生物制药等领域拓展。相信在未来, Hadoop将会在更多的领域 中扮演幕后英雄,为我们提供更加快捷优质的服务。 《大数据技术基础》
《大数据技术基础》 Hadoop的应用现状和发展趋势 •由于 Hadoop 优势突出,基于Hadoop 的应用已经遍地开花,尤其是在互 联网领域。 –Yahoo! 通过集群运行Hadoop,以支持广告系统和Web搜索的研究; –Facebook 借助集群运行Hadoop,以支持其数据分析和机器学习; –百度则使用Hadoop 进行搜索日志的分析和网页数据的挖掘工作; –淘宝的Hadoop 系统用于存储并处理电子商务交易的相关数据; –中国移动研究院基于Hadoop 的“大云”(BigCloud)系统用于对数 据进行分析和并对外提供服务。 •Hadoop 目前已经取得了非常突出的成绩。随着互联网的发展,新的业务 模式还将不断涌现,Hadoop 的应用也会从互联网领域向电信、电子商务 、银行、生物制药等领域拓展。相信在未来,Hadoop 将会在更多的领域 中扮演幕后英雄,为我们提供更加快捷优质的服务