您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > Hadoop生态系统基本介绍
Hadoop发展历程及各组件介绍第一章课程简介课程介绍Hadoop发展历程Hadoop各组件介绍第二章Hadoop发展历程•WhyHadoop?•Hadoop简史•Hadoop核心组件•Hadoop生态系统•总结Hadoop解决的问题我们处在一个海量数据的时代•我们正产生着比以往任何时候都多的数据-金融交易数据-网络数据-服务器日志-分析数据-电子邮件和短信-各类多媒体数据我们处在一个海量数据的时代•我们产生数据的速度比以往任何时候都快-各类自动化数据-无处不在的互联网-用户自发生成的内容例如,-纽约证交所每天产生的交易数据多达1TB-Twitter每天处理3.4亿条信息-Facebook每天有27亿条评论淘宝双11当天的营业额?淘宝双11全记录数据就是价值•这些数据可用于许多有价值的应用-营销分析-产品推荐-需求预测-欺诈检测-更多、更多•我们必须处理它以提取其价值数据处理的可扩展性受限•我们如何处理所有这些信息•有两个问题需要面对-大数据的存储——HDFS-大数据的分析——MapReduce•WhyHadoop?•Hadoop简史•Hadoop版本Hadoop解决的问题Hadoop的史前•Hadoop最开始用来提高ApacheNutch的可扩展性-Nutch是一个开源的Web搜索引擎项目•两篇谷歌论文对这项成果有重大影响-TheGoogleFileSystem(存储)-Mapreduce(处理)2002200320042005NutchcreatedGoogleFilesystempaperMapReducepaperNutchre-architecture早期Hadoop•Hadoop后来从ApacheNutch被分离出来-第一次进入Lucene的一个子项目,称为hadoop-后来成为顶级Apache项目•雅虎!领导早期的许多Hadoop开发-其他很多公司也接踵而至200620082008Hadoopsub-project1000-nodeYahoo!clusterTop-levelApacheprojectHadoop大事记•2004年DougCuttingMikeCafarella实现了HDFS和MapReduce的初版•2005年12月Nutch移植到新框架,Hadoop在20个节点上稳定运行•2006年1月DougCutting加入雅虎•2006年2月ApacheHadoop项目正式启动,支持MapReduce和HDFS独立发展•2006年2月雅虎的网格计算团队采用Hadoop•2006年4月在188个节点上(每节点10GB)运行排序测试机需要47.9个小时•2006年5月雅虎建立了一个300个节点的Hadoop研究集群•2006年5月在500个节点上运行排序测试集需要42个小时(硬件配置比4月份更好)•2006年11月研究集群增加到600个节点Hadoop大事记•2006年12月排序测试记在20个节点上运行1.8个小时,100个节点上运行3.3个小时,500个节点上运行5.2个小时,900个节点上运行7.8个小时•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版本•社区版本•版本•版本•发行版本比社区版本在兼容性、稳定性、安全性上有增强。•CDH版本集成了自己的安全组件和集群管理工具,相对更适合搭建企业的hadoop平台;在企业中应用广泛,稳定全面。•HDP版本相对于CDH版本,更贴近社区的开源版本;集成了更多的开源组件;提供开源的安装和管理工具Ambari;与微软合作,推出windows上的HDP;提供sandbox集成版本,方便自学。CDH版本•版本•CDH发布的产品的版本通常是下面这种形式•hadoop-2.3.0-cdh5.0.0•2.3.0是社区的hadoop版本•cdh5.0.0是cloudera自己的版本•CDH3,CDH4,CDH5分别对应了Hadoop0.20hadoop2.0hadoop2.3HDP版本•版本第二章Hadoop各组件介绍第二章Hadoop各组件介绍Hadoop生态系统概述核心Hadoop组件•Hadoop系统用于大数据处理•Hadoop提供了两个主要的组件来实现这个-数据存储:HDFS-数据处理:MapReduce•加上完成基本功能所需的组件,包括-文件系统功能-作业调度和监控-WebUIHadoop生态系统HDFS特性•高性能•容错•相对简单的集中管理-主从架构•优化了MapReduce处理-数据本地处理•可扩展性经典HDFS架构•HDFS的架构最近有所改进-更有弹性-更好的可扩展性•这些变化只是在最近的版本中可用-如Cloudera的CDH4-目前版本CDH5•许多人仍然运行在生产之前的版本-我们将首先讨论早期架构-然后我们将讨论它是如何改变的传统的HDFS架构概述•在“经典”HDFS有三个守护进程a.NameNode(主节点)b.SecondaryNameNode(主节点)c.DataNode(从节点)NameNodeDataNodeDataNodeDataNodeDataNodeDataNodeDataNodeSecondaryNameNode基于QJM的HDFSHA架构概述•在HA模式的HDFS有如下的守护进程a.ActiveNameNode(主)b.standbyNameNode(主)c.DataNode(从)d.JournalNode(奇数个)e.ZKFC(主备)写文件流程HDFSclientDistributedFileSystemFSDataOutputStreamNameNodeDataNodeDataNodeDataNode1:create2:create3:write7:complete6:close545:ackpacket4:writepacket45ClientnodenamenodedatanodedatanodedatanodeClientJVMPipelineofdatanodes读文件流程HDFSclientDistributedFileSystemFSDataInputStreamNameNodeDataNodeDataNodeDataNode1:open2:getblocklocation3:read6:close4:read5:readdatanodedatanodedatanodenamenodeclientHadoop生态系统如何理解mapreduce过程?理解mapreduceMapReduce是什么?•MapReduce是一个编程模型-既不是平台也不基于特定于语言-面向记录的数据处理(键和值)-多节点共同处理一个任务•在可能的情况下,每个节点处理存储在各自节点上的数据•包括两个阶段-Map-Reduce•在Map和Reduce之间是shuffle和sort阶段-从Mapper向Reducer发送数据MapReduce是什么?(cont’d)•数据处理的过程跟Unix的管道比较类似cat/my/log|grep‘\.html’|sort|uniq–c/my/outfileMapShuffleandsortReduceMapReducev1架构概述MapReduce:流程图mapmap==Barrier==:AggregatesintermediatevaluesbyoutputkeyreducereducereduceDatastore1Datastoren(Key1,Values…)(Key2,Values…)(Key3,Values…)(Key1,Values…)(Key2,Values…)(Key3,Values…)……Key1,IntermediateValuesKey2,IntermediateValuesKey3,IntermediateValuesFinalkey1valuesFinalkey2valuesFinalkey3valuesInputkeyvaluepairsInputkeyvaluepairsMapReduce:简单的例子(cont’d)•SampleinputtotheMapper:thecatsatonthemattheaardvarksatonthesofa•Intermediatedataproduced:(the,1),(cat,1),(sat,1),(on,1),(the,1)(mat,1),(the,1),(aardvark,1),(sat,1)(on,1),(the,1),(sofa,1)MapReduce:简单的例子(cont’d)•InputtotheReducer(aardvark,[1])(cat,[1])(mat,[1])(on,[1,1])(sat,[1,1])(sofa,[1])(the,[1,1,1,1])MapReduce:简单的例子(cont’d)•OutputfromtheReducer,writtentoHDFS:(aardvark,1)(cat,1)(mat,1)(on,2)(sat,2)(sofa,1)(the,4)MapReduce2——YARN•经典MapReduce架构的问题–JobTracker是集群事务的集中处理点,存在单点故障–JobTracker需要完成的任务太多,既要维护job的状态又要维护job的task的状态,造成过多的资源消耗–在taskTracker端,用map/reducetask作为资源的表示过于简单,没有考虑到CPU、内存等资源情况,当把两个需要消耗大内存的task调度到一起,很容易出现OOM–把资源强制划分为map/reduceslot,当只有maptask时,reduceslot不能用;当只有reducetask时,mapslot不能用,容易造成资源利用不足。MRv2系统架构(cont’d)Hadoop生态系统之HiveHive••建立在Hadoop基础上的数据仓库架构,它为数据仓库的管理提供了许多功能,包括:数据ETL(抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力•Hive是MapReduce的一个高度抽象实现-最初由Facebook的一个团队创建-避免写JavaMapReduce代码-在HDFS中的数据被非常类似于SQL的语言查询-称为HiveQL•Hive解释器把HiveQL转成MapReduce任务-表对应存储在HDFS上的一个目录-HiveMetastore包含如何将文件映射到一个表结构的信息Hive(cont’d)•ExampleHivequery:SELECTstock.product,SUM(orders.purchases)FROMstockINNERJOINordersON(stock.id=orders.stock_id)WHEREorders.quarter=‘Q1’GROUPBYstock.product
本文标题:Hadoop生态系统基本介绍
链接地址:https://www.777doc.com/doc-3393784 .html