HADOOP生态圈

上传人:lx****y 文档编号:242821421 上传时间:2024-09-04 格式:PPT 页数:42 大小:1.99MB
返回 下载 相关 举报
HADOOP生态圈_第1页
第1页 / 共42页
HADOOP生态圈_第2页
第2页 / 共42页
HADOOP生态圈_第3页
第3页 / 共42页
点击查看更多>>
资源描述
BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HADOOP,大数据培训,之生态圈,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,1,hadoop,生态圈介绍,3,hadoop,介绍,4,hadoop,安装部署,2,大数据行业,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,大数据行业,什么是大数据?现实中的每一天都是大数据,大数据:无法使用传统的流程或工具处理或分析的信息,大数据呈现的三大特征:,数据量大,一个知名的互联网企业每一天的数据可以生成上百T的数据,数据流动速度快,数据的变化与处理的频度由天加速到秒级,数据种类来源多样化,这里除了结构化的数据之外,还有半结构化、非结构化的数据大量产生,大数据的应用,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,为什么是,HADOOP,高扩展性,:,Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些,集,群,可以方便地扩展到数以千计的节点中。,高效性,:,Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,,,因此处理速度非常快。,高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。,低成本,:,与一体机、商用数据仓库以及,商用服务器、存储,等相比,hadoop是开源,的,,即使最普通的PC机也能运作,,项目的软件,、硬件,成本大大降低,使用上可以与,java,无缝对接,降低学习成本,1,hadoop,生态圈介绍,3,hadoop,介绍,4,hadoop,安装部署,2,大数据行业,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HADOOP,家族,HBase,Hive,Zookeeper,Pig,Mahout,Sqoop,Flume,Oozie,Avro,Chukwa,Hue,Ambari,HADOOP,生态圈,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HBase,简介,hbase是,A,pache Hadoop,的数据库,目标就是存储并处理大型的数据,,能够对大型的数据提供随机、实时的读写访问,,是建立的hdfs之上,提,供高可靠性、高性能、,多版本的、面向列的存储模型,实时读写的数据库,系统。它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range,来检索数据,主要用来存储非结构化和半结构化的松散数据。与hadoop,一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,,来增加计算和存储能力,。,Hbase,存储结构,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HBase中的每张表都通过行键按照一定的范围被分割成多个子表(Region),默认一个Region超过256M就要被分割成两个,由RegionServer管理,管理哪些Region由HMaster分配。,RegionServer存取一个子表时,会创建一个Region对象,然后对表的每个列族(Column Family)创建一个Store实例,每个Store都会有0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile, HFile就是实际的存储文件。因此,一个Region有多少个列族就有多少个Store。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Hbase,表结构,Row Key,Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。,存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性),行的一次读写是原子操作 (不论一次读写多少列)。这个设计决策能够使用户很容易的理解程序在对同一个行进行并发更新操作时的行为。,HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提高性能。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,列族,hbase表中的每个列,都归属与某个列族。列族是表的chema的一部分(而列不是),,必须在使用表之前定义。列名都以列族作为前缀。例如courses:history ,,courses:math 都属于 courses 这个列族。,访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,,列族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用,可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、,一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。,时间戳,HBase中通过row和columns确定的为一个存贮单元称为cell。每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。,为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,hbase提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HBase以表的形式存储数据。与关系型数据库一样,在HBase中,表由行和列组成。与关系型数据库不同的是,HBase还有“,列簇,”(columnfamily)的概念。一个表有若干“列簇”组成,每一个“列簇”包含若干列(column)。与此同时,表中的每一个cell都是有时间戳的。因此我们可以把其想象成一个三维数据库。除了行和列之外,还有一个时间维度,每一个单元格(cell)的不同版本都被保存。与关系型数据库类似,在HBase中每一行都有一个主键(rowkey)。HBase对于数据的检索都是通过rowkey进行的。HBase对于数据的检索主要有三种方式:,1.通过单个rowkey检索一行,2.通过rowkey的范围rowkeystart,rowkeyend返回多条记录,3.全表扫描,返回整个table,Hive架构,Hadoop(JobTracker),CLI,JDBC/ODBC,WEBUI,Thrift Server,Hive架构,Driver,(complier,、,optimizer,、,executor),BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,有三种模式可以连接到数据库:,(1) 单用户模式。此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test。,(2)多用户模式。通过网络连接到一个数据库中,是最经常使用到的模式。,(3)(3) 远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动,MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。,Hive,连接,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Ambari,介绍,Ambari是Hadoop分布式集群配置管理工具,Ambari充分利用了一些已有的优秀,开源软件,巧妙地把它们结合起来,使其在分布式环境中做到了集群式服务管,理能力、监控能力、展示能力,这些优秀的开源软件有:,(1)、agent端,采用了puppet管理节点。,(2)、在web端,采用ember.js作为前端MVC框架和NodeJS相关工具,用,handlebars.js作为页面渲染引擎,在CSS/HTML方面还用了Bootstrap框架。,(3)、在Server端,采用了Jetty、Spring、JAX-RS等。,(4)、同时利用了Ganglia、Nagios的分布式监控能力。,Ambari框架采用的是Server/Client的模式,主要由两部分组成:ambari-agent和,ambari-server。ambari依赖其它已经成熟的工具,例如:其ambari-server就依赖,python,而ambari-agent还同时依赖ruby,puppet,fecter等工具,还有它也依赖,一些监控工具nagios和ganglia用于监控集群状况。其中:puppet是分布式集群配置,管理工具,也是典型的Server/Client模式,能够集中式管理分布式集群的安装配置,部署,。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Ambari,主页面,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Mahout,介绍,Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些,可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创,建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子,项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。,Mahout,的主要目标是建立可伸缩的机器学习算法,他的算法运行在,Hadoop,平台,下,通过,MapReduce,模式实现,但是并不严格要求算法要基于,Hadoop,平台,在,单个节点或数据量不大的情况,也可以使用普通的,java,程序调用并运行,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Mahout,算法,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Mahout,的协同过滤算法,协同过滤算法,有两种:基于用户、基于产品的,计算:,1)基于用户(user-based)的推荐算法:,基于用户的推荐算法,是根据用户对物品的偏好数据进行分析,以推荐相关产品,的算法。,算法的输入数据格式:用户ID、物品ID、偏好值,其中关键数据是偏好值,偏好值可以是用户对某物品的主观评价,比如“超赞”、,“赞”等,也可以是通过用户对物品的客观操作统计而成的值,比如某一月内,该用,户对某一物品的搜索或浏览次数、时长等,变换成偏好值。,算法计算过程,以下是Mahout的算法过程:,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,第1步:将用户-物品数据导入数据模型(DataModel);,第2步:计算用户相似度(UserSimilarity),一般使用欧几里得距离算法,也可,以用皮尔逊算法、余弦距离或最大对数似然率算法;,第3步:计算用户邻近度(UserNeighborhood),这是根据用户相似度的聚类分,析结果;,第4步:将以上参数传入Recommender,最后得到结果。,算法的输出数据格式:用户ID、物品ID、推荐值,2)基于物品(item-based)的算法,基于物品的推荐算法与基于用户的算法过程相同,不过在不是计算用户相似度,(UserSimilarity)而是物品相似度(ItemSimilarity)。,算法的输入数据格式:用户ID、物品ID、行为,“行为”可能是浏览-View,也可,能是购买-Purchase,或者是搜索-Search;,算法的输出数据格式:用户ID、物品ID、推荐值,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,hadoop,介绍,hadoop,生态圈介绍,4,hadoop,安装部署,2,大数据行业,3,1,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HADOOP,简介,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了,解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速,运算和存储。,Hadoop实现了一个分布式文件系统(Hadoop Distributed ),,简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost),硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据,集的应用程序。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS,为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,Hadoop 由许多元素构成。其最底部是 Hadoop Distributed (HDFS),,它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是,MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop,分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及,数据仓库工具Hive和分布式数据库Hbase的,使用,,基本涵盖了Hadoop分布式,平台的所有技术核心。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HADOOP的体系结构,Ambari,(,安装、部署配置和管理工具,),Zookeeper,分布式协调服务,HDFS,分布式文件管理系统,MapperReduce2/Yarn,Hive,数据仓库,Pig,数据流处理,Mahout,数据挖掘,Hbase,分布式数据库,Flume,日志收集工具,Sqoop,ETL工具,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,HDFS,介绍,HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个,NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理,件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存,储的数据。HDFS允许用户以文件的形式存储数据。从内部来看,文件被分,成若干个数据块,而且这若干个数据块存放在一组DataNode上。NameNode,执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录等,,它也负责数据块到具体DataNode的映射。DataNode负责处理文件系统客,户端的文件读写请求,,并在NameNode的统一调度下进行数据块的创建、删除和复制工作。,HDFS通常运行的是在Linux操作系统,因为采用Java语言开发,因此,任何支持Java的机器都可以部署NameNode和DataNode。一个典型,的部署场景是集群中的一台机器运行一个NameNode实例,其他机,器分别运行一个DataNode实例。NameNode是所有HDFS元数据的管,理者,用户数据永远不会经过NameNode。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,MapReduce是一种并行编程模式,这种模式使得程序员可以轻松地编写出,分布式并行程序。在Hadoop的体系结构中,它可以将任务分发到由上千台,廉价机器组成的集群上,并以一种高容错的方式并行处理大量的数据集,,实现Hadoop的并行任务处理功能。MapReduce框架是由一个单独运行在主,节点上的JobTracker和运行在每个集群从节点上的TaskTracker共同组成的。,主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点,上。主节点监控它们的执行情况,并且重新执行之前失败的任务;从节点,仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交,作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并,监控TaskTracker的执行。,MapReduce,介绍,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,MapReduce基于“分而治之”的思想,将计算任务抽象成map和reduce两个,计算过程,可以简单理解为“分散运算归并结果”的过程。一个 MapReduce,程序首先会把输入数据分割成不相关的若干键/值对(key1/value1)集合,,这些键/值对会由多个map任务来并行地处理。 MapReduce会对map的输出,(一些中间键/值对key2/value2集合)按照key2进行排序,对key在内存中,字节数组比较后进行升序排序,并将属于同一个key2的所有value2组合在,一起作为reduce任务的输入,即合并相同的key的value值成为一个集合,,作为reduce任务的输入参数,由reduce任务计算出最终结果并输出 key3/value3,MapReduce,计算模型,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,1)首先文档的数据记录(如文本中的行,或数据表格中的行)是以 “键值对” 的,形式传入map 函数,然后map函数对这些键值对进行处理(如统计词频),然后,输出到中间结果。,2)在键值对进入reduce进行处理之前,必须等到所有的map函数都做完,所,以既为了达到这种 同步又提高运行效率,,从,map,到,reduce,之间使用,shuffer,来,负责同步的同时完成对map的中间结果的统计,包括 a. 对同一个map节点的,相同key的value值进行合并 , b. 之后将来自不同map的具有相同的key的键值,对送到同一个reduce 进行处理 。,3)在reduce阶段,每个reduce节点得到的是从所有map节点传过来的具有相同,的key的键值对。reduce节点对这些键值进行合并。,MapReduce,的工作流程,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,什么是,shuffer,Hadoop的shuffle过程就是从map端输出到reduce端输入之间的过程,这一段,应该是Hadoop中最核心的部分,因为涉及到Hadoop中最珍贵的网络资源,,所以shuffle过程中会有很多可以调节的参数,。,map过程的输出是写入本地磁盘而不是HDFS,但是一开始数据并不是直接写,入磁盘而是缓冲在内存中,缓存的好处就是减少磁盘I/O的开销,提高合并,和排序的速度。默认的内存缓冲大小是100M(可以配置),所以在书写map,函数的时候要尽量减少内存的使用,为shuffle过程预留更多的内存,因为该过,程是最耗时的过程。,Map,端,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,当缓冲的内存大小使用超过一定的阈值(默认80%),一个后台的线程就会,启动把缓冲区中的数据写入(spill)到磁盘中,往内存中写入的线程继续写,入知道缓冲区满,缓冲区满后线程阻塞直至缓冲区被清空。,在数据spill到磁盘的过程中会有一些额外的处理,调用partition函数、,combine函数(如果设置)、对数据进行排序(按key排序)。如果发生多,次磁盘的溢出写,会在磁盘上形成几个溢出写文件,在map过程结束时,,要将这些文件进行合并生成一个大的分区的排序的文件。,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,reduce端可能从n多map的结果中获取数据,而这些map的执行速度不尽相同,,当其中一个map运行结束时,reduce就会从jobtractor中获取该信息。map运,行结束后tasktractor会得到消息,进而将消息汇报给jobtractor,reduce定时,从jobtractor获取该信息,reduce端默认有5个线程从map端拖拉数据。,同样从map端拖来的数据(pull)先写到reduce端的缓存中,同样缓存占用,到达一定阈值后会将数据写到磁盘中,同样会进行partition、combine、排,序等过程。如果形成多个磁盘文件还会进行合并最后一次合并的结果作为,reduce的输入而不是写入到磁盘中。,reduce的结果将会写入到HDFS,如果执行任务的节点也是HDFS的一个节点,,本地会保存一个副本。,Reduce,端,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务,调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应,用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的,传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager,和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算,进行组织。事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控,任务。,Yarn,资源管理,/,调度器,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,BIGDATAUNION,Tel: 400-00-31368 Website: bigdataunion.org,第四部分见,word,文档,,hadoop,安装部署,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!