《hadoop基础》课件-第二章 Hadoop介绍_第1页
《hadoop基础》课件-第二章 Hadoop介绍_第2页
《hadoop基础》课件-第二章 Hadoop介绍_第3页
《hadoop基础》课件-第二章 Hadoop介绍_第4页
《hadoop基础》课件-第二章 Hadoop介绍_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章Hadoop介绍1Hadoop核心组件目录Hadoop简介2Hadoop生态圈3Hadoop应用场景4Hadoop发展历程Hadoop背景Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。它的目的是从单一的服务器扩展到成千上万的机器,将集群部署在多台机器,每个机器提供本地计算和存储。Hadoop框架最核心的设计是HDFS和MapReduce。为什么使用Hadoop1.Hadoop可以轻松地处理大量的结构化、半结构化和非结构化数据。2.实施成本较低,因为它可以使用普通商用硬件并根据需求伸缩。3.Hadoop拥有一个处于不断增长状态中的社区,该社区通过频繁提交bug修复和增强功能来支持Hadoop。4.Hadoop自身的库在构建时充分考虑了可用性,并且它的功能不依赖于底层的硬件。5.由于Hadoop固有的处理无格式数据的能力,使得它能灵活地处理各种数据。6.Hadoop天生具有云化的属性,因此在云服务环境中部署完整的Hadoop很容易实现。7.Hadoop天然具有健壮性和容错能力。8.Hadoop拥有强大的计算能力,因此非常适合用于计算密集型的分析需求。9.Hadoop具有很高的运算速度,可以很容易地处理复杂的计算逻辑。Hadoop特点Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,所以集群可以很容易进行节点的扩展,扩大集群。能够处理

PB

级数据。此外,Hadoop依赖于社区服务,因此它的成本比较低,任何人都可以使用。1Hadoop核心组件目录Hadoop简介2Hadoop生态圈3Hadoop应用场景4Hadoop简介—核心分布式计算框架;主要包含map(映射)和reduce(规约)过程可扩展、容错、高性能的分布式文件系统,异步复制,一次写入多次读取集群资源管理和任务调度框架:解决资源任务调度Hadoop分布式文件系统--HDFS分布式文件系统(HDFS,HadoopDistributedFileSystem)

高度容错性的系统上传的数据自动保存多个副本,适合部署在廉价的机器上。适合大数据的处理高吞吐量的数据访问,非常适合大规模数据集上的应用。流式文件写入一次写入,多次读取。文件一旦写入,不能修改,只能增加。这样可以保证数据的一致性。Hadoop分布式文件系统--HDFSHDFS是一个高度容错性的分布式文件系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。NameNode

可以看作是分布式文件系统中的管理者,存储文件系统的meta-data,主要负责管理文件系统的命名空间,集群配置信息,存储块的复制。DataNode

是文件存储的基本单元。它存储文件块在本地文件系统中,保存了文件块的meta-data,同时周期性的发送所有存在的文件块的报告给NameNode。Client

就是需要获取分布式文件系统文件的应用程序。

Fsimage:NameNode中存放元信息的文件Edits:系统运行期间,所有对元数据的操作都持久化到edits文件中。Hadoop分布式文件系统--HDFS文件写入:1.Client向NameNode发起文件写入的请求2.NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。3.Client将文件划分为多个文件块,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

文件读取:1.

Client向NameNode发起文件读取的请求2.

NameNode返回文件存储的DataNode的信息。3.Client读取文件信息。Hadoop分布式文件系统--HDFS1.冗余备份2.副本存放3.备份读取4.备份数补充宕机处理Hadoop简介--MapReduce并行计算框架MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归纳)函数,用来保证所有映射的键值对中的每一个共享相同的键组。HadoopMapReduce映射、化简编程模型MapReduce是一种编程模型,用于大规模数据集的并行运算。Map(映射)和Reduce(化简),采用分而治之思想,先把任务分发到集群多个节点上,并行计算,然后再把计算结果合并,从而得到最终计算结果。多节点计算,所涉及的任务调度、负载均衡、容错处理等,都由MapReduce框架完成,不需要编程人员关心这些内容。1.根据输入数据的大小和参数的设置把数据分成splits,每个split对于一个map线程。2.Split中的数据作为Map的输入,Map的输出一定在Map端。3.Map的输出到Reduce的输入的过程(shuffle过程): 第一阶段:在map端完成内存->排序->写入磁盘->复制第二阶段:在reduce端完成映射到reduce端分区->合并->排序4.Reduce的输入到Reduce的输出最后排好序的key/value作为Reduce的输入,输出不一定是在reduce端。HadoopMapReduce本质ApacheHadoopYARN(YetAnotherResourceNegotiator,另一种资源协调者)是一种新的Hadoop资源管理器。YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。

它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

HadoopYARN如何理解通用资源管理系统和调度平台?资源管理系统:集群的硬件资源,和程序运行相关,比如内存、CPU等。调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)。通用:不仅仅支持MapReduce程序,理论上支持各种计算程序。YARN不关心你干什么,只关心你要资源,在有的情况下给你,用完之后还我。HadoopYARN可以把HadoopYARN理解为相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于运行于操作系统之上的应用程序,YARN为这些程序提供运算所需的资源(内存、CPU等)。Hadoop能有今天这个地位,YARN可以说是功不可没。因为有了YARN,更多计算框架可以接入到HDFS中,而不单单是MapReduce,正式因为YARN的包容,使得其他计算框架能专注于计算性能的提升。HDFS可能不是最优秀的大数据存储系统,但却是应用最广泛的大数据存储系统,YARN功不可没。HadoopYARN1Hadoop核心组件目录Hadoop简介2Hadoop生态圈3Hadoop应用场景4Hadoop生态系统Hadoop生态系统--HBaseHBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。Hadoop生态系统—数据访问Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫PigLatin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。共同点:都是把代码转换为MapReduce任务;不同点:Hive使用SQL、Pig使用pigLatin;Hadoop生态系统—数据传输

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Hadoop生态系统—管理

oozie是基于hadoop的调度器,以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar任务等等。主要的功能有Workflow:顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)Coordinator,定时触发workflowBundleJob,绑定多个coordinatorchukwa是一个开源的用于监控大型分布式系统的数据收集系统。这是构建在hadoop的hdfs和map/reduce框架之上的,继承了hadoop的可伸缩性和鲁棒性。Chukwa还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。Hadoop生态系统—管理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Hadoop生态系统—序列化Avro是一个数据序列化的系统。它可以提供:丰富的数据结构类型快速可压缩的二进制数据形式存储持久数据的文件容器远程过程调用RPCHadoop生态系统—机器学习

Mahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中。1Hadoop核心组件目录Hadoop简介2Hadoop生态圈3Hadoop应用场景4Hadoop应用场景

目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报道过的Expedia也在其中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论