Hadoop生态系统基本介绍

上传人:汽*** 文档编号:569267651 上传时间:2024-07-28 格式:PPT 页数:60 大小:1.55MB
返回 下载 相关 举报
Hadoop生态系统基本介绍_第1页
第1页 / 共60页
Hadoop生态系统基本介绍_第2页
第2页 / 共60页
Hadoop生态系统基本介绍_第3页
第3页 / 共60页
Hadoop生态系统基本介绍_第4页
第4页 / 共60页
Hadoop生态系统基本介绍_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《Hadoop生态系统基本介绍》由会员分享,可在线阅读,更多相关《Hadoop生态系统基本介绍(60页珍藏版)》请在金锄头文库上搜索。

1、Hadoop发展展历程及各程及各组件介件介绍第一章第一章 课程程简介介课程介绍Hadoop发展历程Hadoop各组件介绍第二章第二章Hadoop发展历程WhyHadoop?Hadoop简史Hadoop核心组件Hadoop生态系统总结Hadoop解决的问题我们处在一个海量数据的时代我们正产生着比以往任何时候都多的数据-金融交易数据-网络数据-服务器日志-分析数据-电子邮件和短信-各类多媒体数据我们处在一个海量数据的时代我们产生数据的速度比以往任何时候都快-各类自动化数据-无处不在的互联网-用户自发生成的内容例如,-纽约证交所每天产生的交易数据多达1TB-Twitter每天处理亿条信息-Faceb

2、ook每天有27亿条评论淘宝双11当天的营业额?淘宝双11全记录数据就是价值这些数据可用于许多有价值的应用-营销分析-产品推荐-需求预测-欺诈检测-更多、更多我们必须处理它以提取其价值数据处理的可扩展性受限我们如何处理所有这些信息有两个问题需要面对-大数据的存储HDFS-大数据的分析MapReduceWhyHadoop?Hadoop简史Hadoop版本Hadoop解决的问题Hadoop的史前Hadoop最开始用来提高ApacheNutch的可扩展性-Nutch是一个开源的Web搜索引擎项目两篇谷歌论文对这项成果有重大影响-TheGoogleFileSystem(存储)-Mapreduce(处理

3、)2002200320042005NutchcreatedGoogleFilesystempaperMapReducepaperNutchre-architecture早期HadoopHadoop后来从ApacheNutch被分离出来-第一次进入Lucene的一个子项目,称为hadoop-后来成为顶级Apache项目雅虎!领导早期的许多Hadoop开发-其他很多公司也接踵而至200620082008Hadoopsub-project1000-nodeYahoo!clusterTop-levelApacheprojectHadoop大事记2004年DougCuttingMikeCafarella

4、实现了HDFS和MapReduce的初版2005年12月Nutch移植到新框架,Hadoop在20个节点上稳定运行2006年1月DougCutting加入雅虎2006年2月ApacheHadoop项目正式启动,支持MapReduce和HDFS独立发展2006年2月雅虎的网格计算团队采用Hadoop2006年4月在188个节点上(每节点10GB)运行排序测试机需要个小时2006年5月雅虎建立了一个300个节点的Hadoop研究集群2006年5月在500个节点上运行排序测试集需要42个小时(硬件配置比4月份更好)2006年11月 研究集群增加到600个节点Hadoop大事记2006年12月 排序测

5、试记在20个节点上运行个小时,100个节点上运行个小时,500个节点上运行个小时,900个节点上运行个小时2007年1月研究集群增加到900个节点2007年4月研究集群增加到两个集群1000个节点2008年4月在900个节点上运行1TB的排序测试集仅需要209秒,成为全球最快2008年10月 研究集群每天状态10TB的数据2009年3月17个集群共24000个节点2009年4月在每分钟排序中胜出,59秒内排序500GB(1400个节点上)和173分钟内排序100TB的数据(在3400个节点上)WhyHadoop?Hadoop简史Hadoop版本Hadoop解决的问题Hadoop版本社区版本CD

6、H版本HDP版本发行版本比社区版本在兼容性、稳定性、安全性上有增强。CDH版本集成了自己的安全组件和集群管理工具,相对更适合搭建企业的hadoop平台;在企业中应用广泛,稳定全面。HDP版本相对于CDH版本,更贴近社区的开源版本;集成了更多的开源组件;提供开源的安装和管理工具Ambari;与微软合作,推出windows上的HDP;提供sandbox集成版本,方便自学。CDH版本CDH版本CDH发布的产品的版本通常是下面这种形式hadoop-2.3.0-cdh5.0.0是社区的hadoop版本是cloudera自己的版本CDH3,CDH4,CDH5分别对应了HDP版本HDP版本第二章第二章Had

7、oop各组件介绍第二章第二章Hadoop各组件介绍Hadoop生态系统概述核心Hadoop组件Hadoop系统用于大数据处理Hadoop提供了两个主要的组件来实现这个-数据存储:HDFS-数据处理:MapReduce加上完成基本功能所需的组件,包括-文件系统功能-作业调度和监控-WebUIHadoop生态系统HDFS特性高性能容错相对简单的集中管理-主从架构优化了MapReduce处理-数据本地处理可扩展性经典HDFS架构HDFS的架构最近有所改进-更有弹性-更好的可扩展性这些变化只是在最近的版本中可用-如Cloudera的CDH4-目前版本CDH5许多人仍然运行在生产之前的版本-我们将首先讨

8、论早期架构-然后我们将讨论它是如何改变的传统的HDFS架构概述在“经典”HDFS有三个守护进程a.NameNode(主节点)b.SecondaryNameNode(主节点)c.DataNode(从节点)NameNodeDataNodeDataNodeDataNodeDataNodeDataNodeDataNodeSecondaryNameNode基于QJM的HDFSHA架构概述在HA模式的HDFS有如下的守护进程a.ActiveNameNode(主)b.standbyNameNode(主)c.DataNode(从)d.JournalNode(奇数个)e.ZKFC(主备)写文件流程HDFScli

9、entDistributedFileSystemFSDataOutputStreamNameNodeDataNodeDataNodeDataNode1:create2:create3:write7:complete6:close545:ackpacket4:writepacket45ClientnodenamenodedatanodedatanodedatanodeClientJVMPipelineofdatanodes读文件流程HDFSclientDistributedFileSystemFSDataInputStreamNameNodeDataNodeDataNodeDataNode1:o

10、pen2:getblocklocation3:read6:close4:read5:readdatanodedatanodedatanodenamenodeclientHadoop生态系统如何理解mapreduce过程?理解mapreduceMapReduce是什么?MapReduce是一个编程模型-既不是平台也不基于特定于语言-面向记录的数据处理(键和值)-多节点共同处理一个任务在可能的情况下,每个节点处理存储在各自节点上的数据包括两个阶段-Map-Reduce在Map和Reduce之间是shuffle和sort阶段-从Mapper向Reducer发送数据MapReduce是什么?(cont

11、d)数据处理的过程跟Unix的管道比较类似cat/my/log|grep.html|sort|uniqc/my/outfileMapShuffleandsortReduceMapReducev1架构概述MapReduce:流程图mapmap=Barrier=:AggregatesintermediatevaluesbyoutputkeyreducereducereduceDatastore1Datastoren(Key1,Values)(Key2,Values)(Key3,Values)(Key1,Values)(Key2,Values)(Key3,Values)Key1,Intermedia

12、teValuesKey2,IntermediateValuesKey3,IntermediateValuesFinalkey1valuesFinalkey2valuesFinalkey3valuesInputkeyvaluepairsInputkeyvaluepairsMapReduce:简单的例子(contd)SampleinputtotheMapper:thecatsatonthemattheaardvarksatonthesofaIntermediatedataproduced:(the,1),(cat,1),(sat,1),(on,1),(the,1)(mat,1),(the,1),(

13、aardvark,1),(sat,1)(on,1),(the,1),(sofa,1)MapReduce:简单的例子(contd)InputtotheReducer(aardvark,1)(cat,1)(mat,1)(on,1,1)(sat,1,1)(sofa,1)(the,1,1,1,1)MapReduce:简单的例子(contd)OutputfromtheReducer,writtentoHDFS:(aardvark,1)(cat,1)(mat,1)(on,2)(sat,2)(sofa,1)(the,4)MapReduce2YARN经典MapReduce架构的问题JobTracker是集群事

14、务的集中处理点,存在单点故障JobTracker需要完成的任务太多,既要维护job的状态又要维护job的task的状态,造成过多的资源消耗在taskTracker端,用map/reducetask作为资源的表示过于简单,没有考虑到CPU、内存等资源情况,当把两个需要消耗大内存的task调度到一起,很容易出现OOM把资源强制划分为map/reduceslot,当只有maptask时,reduceslot不能用;当只有reducetask时,mapslot不能用,容易造成资源利用不足。MRv2系统架构(contd)Hadoop生态系统之HiveHive建立在Hadoop基础上的数据仓库架构,它为数

15、据仓库的管理提供了许多功能,包括:数据ETL(抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力Hive是MapReduce的一个高度抽象实现-最初由Facebook的一个团队创建-避免写JavaMapReduce代码-在HDFS中的数据被非常类似于SQL的语言查询-称为HiveQLHive解释器把HiveQL转成MapReduce任务-表对应存储在HDFS上的一个目录-HiveMetastore包含如何将文件映射到一个表结构的信息Hive(contd)ExampleHivequery:SELECT stock.product, SUM(orders.purchases) FRO

16、M stock INNER JOIN orders ON (stock.id = orders.stock_id) WHERE orders.quarter =Q1 GROUP BY stock.product;Hadoop生态系统之zookeeperZookeeper简介在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。Zookeeper角色Zookeeper同步流程选完leader以后,zk就进入状态同步过程。1.leader等待serv

17、er连接;2.Follower连接leader,将最大的zxid发送给leader;3.Leader根据follower的zxid确定同步点;4.完成同步后通知follower已经成为uptodate状态;5.Follower收到uptodate消息后,又可以重新接受client的请求进行服务了。Hadoop生态系统之FlumeFlume人们很容易将现有文件添加到HDFS- hadoop fs put logfile.txt /tmp但是,如果想要将数据创建在HDFS上-例如,把服务器日志输出到HDFS我们可以用Flume实现Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系

18、统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume架构Kafka分布式消息系统Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据。活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv、用户访问了什么内容,搜索了什么内容等。这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。Kafka相对其他消息系统,像activemq、rabbitmq在性能方面有很大的优势。Kafka架构Hadoop生态系统之HbaseHBase简介HBASE-HadoopData

19、base是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可以在廉价PCServer上搭建起大规模结构化存储集群。HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。HBase的体系架构HDFS:每个文件由多个Block组成,分散在多个DataNode上Region

20、Server是Hbase集群的物理节点RegionServer包含多个Region,一个表由多个Region组成Hmaster负责Region在RegionServer间的BalanceZookeeper集群存储索引表所在位置并负责主从节点的通信每个Region包含多个Store,一个列族对应一个StoreStore中包含一个或多个StoreFile,写数据时首先写入MemeStore,后续Flush到StoreFileWriteAheadLog,主要用于写恢复Client:HBaseClient使用HBase的RPC机制与HMaster和HRegionServer进行通信,对于管理类操作,C

21、lient与HMaster进行RPC;对于数据读写类操作,Client与HRegionServer进行RPCZookeeperZookeeperQuorum中除了存储了-ROOT-表的地址和HMaster的地址,HRegionServer也会把自己以Ephemeral方式注册到Zookeeper中,使得HMaster可以随时感知到各个HRegionServer的健康状态。此外,Zookeeper也避免了HMaster的单点问题,见下文描述Hmaster:HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的MasterElection机制保证总有一个Mas

22、ter运行,HMaster在功能上主要负责Table和Region的管理工作:1.管理用户对Table的增、删、改、查操作2.管理HRegionServer的负载均衡,调整Region分布3.在RegionSplit后,负责新Region的分配4.在HRegionServer停机后,负责失效HRegionServer上的Regions迁移HBase工作流程Hbase的存的存储结构构RowKey时间戳列族1列族2列A列B列C13910000001T12012121aaa13910000002T12012122bbb13910000003T22012122ccc13910000004T12012124ddd13910000005T120121234bba13910000006T220121254aa13910000007T320121234cs13910000008T120121221ddf13910000009T32012121sdsxRegion1Region2Region3RegionServer1RegionServer2根据负载情况随机均匀分布Q&A?谢谢!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号