大数据技术基础及应用(微课版)课件 (曹雪梅) 第4-6章 Hive数据仓库技术 - Zkeeper分布式集群管理技术 - 副本_第1页
大数据技术基础及应用(微课版)课件 (曹雪梅) 第4-6章 Hive数据仓库技术 - Zkeeper分布式集群管理技术 - 副本_第2页
大数据技术基础及应用(微课版)课件 (曹雪梅) 第4-6章 Hive数据仓库技术 - Zkeeper分布式集群管理技术 - 副本_第3页
大数据技术基础及应用(微课版)课件 (曹雪梅) 第4-6章 Hive数据仓库技术 - Zkeeper分布式集群管理技术 - 副本_第4页
大数据技术基础及应用(微课版)课件 (曹雪梅) 第4-6章 Hive数据仓库技术 - Zkeeper分布式集群管理技术 - 副本_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

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

文档简介

第4章Hive数据仓库技术本章主要讲述Hive数据仓库技术的基本技术原理通过学习本节将能够学习Hive数据仓库技术的基本技术原理通过本节学习可以掌握:Hive数据仓库的概念和特点Hive的架构Hive的增强特性Hive数据仓库的概念和特点Hive的架构Hive的增强特性Hive简介数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理者的决策过程。Hive简介补充什么是SQL?SQL是结构化查询语言(StructuredQueryLanguage)的缩写,是一种用于管理关系型数据库管理系统(RDBMS)的标准化语言。SQL允许用户执行各种操作,包括插入、更新、删除和检索数据库中的数据,以及管理数据库对象(如表、视图、索引等)和执行数据库管理任务(如授权、事务管理等)。Hive数据仓库的概念和特点Hive的架构Hive的增强特性Hive分为三个角色HiveServer、MetaStore、WebHcat。HiveServer将用户提交的HQL语句进行编译,解析成对应的MapReduce任务、Spark任务或者HDFS操作,从而完成数据的提取、转换、分析。MetaStore提供元数据服务。WebHcat对外提供基于https协议的元数据访问、DDL查询等服务。Hive框架Hive框架WebHCat提供了Rest接口,意味着WebHCat允许用户通过HTTP请求来与其进行交互,执行一系列的操作,如提交作业、查询任务状态等。通过REST接口,用户可以使用标准的HTTP方法(如GET、POST、PUT、DELETE)来与webHCat进行通信,实现对Hive作业的管理和控制。数据库:创建表时如果不指定数据库,则默认为default数据库。表:物理概念,实际对应HDFS上的一个目录。分区:对应所在表所在目录下的一个子目录。桶:对应表或分区所在路径的一个文件。倾斜数据:数据集中于个别字段值的场景正常数据:不存在倾斜的数据。Hive数据结构Hive增强特性-列加密

列加密的定义:

列加密是指对Hive中的数据表中特定列进行加密处理,以增强数据的安全性。SQL介绍“结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。请简述Hive的优缺点?请简述Hive的基本结构?

2.(多选)Hive的优点有以下哪些?高可靠性类SQL可拓展延迟低3.(多选)Hive数据结构分为以下哪几个?A. 数据库B. 分区C. 桶D. 表

描述了Hive数据仓库的概念和特点讲解了Hive的架构学习推荐华为在线学习:/cn/华为认证-华为人才在线:/cn/talent/#/cert参考资料华为大数据认证:/cn/talent/#/cert/product-details?certifiedProductId=327&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=3.0百度百科:/item/谢谢36配色色系表RGB255/187/87RGB250/211/187RGB254/238/193RGB226/243/252RGB190/233/238RGB

153/54/54RGB

242/137/68RGB

253/211/81RGB

129/193/95RGB

86/196/210RGB

127/0/1RGB

237/109/0RGB

52/200/0RGB

98/178/48RGB

48/181/197RGB137/137/137RGB255/255/255RGB89/87/87RGB221/221/221RGB

35/24/21RGB181/181/181第5章MapReduce离线计算引擎本章主要讲述MapReduce和Yarn的基本技术原理通过学习本节将能够学习MapReduce和Yarn的基本技术原理通过本节学习可以掌握:MapReduce的基本概念Yarn简介与架构MapReduce在Yarn中的任务调度Yarn的高级特性MapReduce的基本概念Yarn简介与架构MapReduce在Yarn中的任务调度Yarn的高级特性思考:HDFS解决什么问题?海量数据储存思考:数据用来做什么?计算?内存,CPU,硬盘(硬件资源有限)分布式HDFS解决了数据存储问题运算至少分为两个阶段:先并发计算,然后汇总结果这两个阶段如何计算启动?如何协调?运行程序如何执行?数据和程序谁找谁?如何分配运算任务?如何管理中间状态,如何容错?如何监控?出错如何重试?MapReduce是一个分布式的计算框架,是面向大数据并行处理的计算模型,框架和平台。

它包含以下三层含义1)MapReduce是基于集群的高性能并行计算平台(ClusterInfrastructure)。2)MapReduce是一个并行计算与运行软件框架(SoftwareFramework)。3)MapReduce是一个并行程序设计模型(ProgrammingModel&Methodology)。MapReduce的定义MapReduce基于谷歌发布的分布式计算框架MapReduce论文设计开发,用于大规模数据集(大于1TB)的并行计算,具有如下特点:易于编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理。良好的扩展性:可通过添加节点以扩展集群能力。高容错性:当节点发生故障时,通过计算迁移或数据迁移等策略在其它节点继续执行任务,提高集群的可用性与容错性。MapReduce特点模型简介MapReduce任务执行1.哪个选项不是MapReduce的特点?A易于编程B良好扩展性C实时计算D高容错性

习题MapReduce的基本概念Yarn简介与架构MapReduce在Yarn中的任务调度Yarn的高级特性Yarn(YetAnotherResourceNegotiator,另一种资源协调者)是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。Yarn简介增大拓展性解决了单点故障计算框架之间的共享Yarn的特点Yarn的组成Yarn的组成ResourceManager负责集群中所有资源的统一管理和分配。它接收来自各个节点(NodeManager)的资源汇报信息,并根据收集的资源按照一定的策略分配给各个应用程序。ResourceManager作为资源的管理者,其只对资源做管理,不对资源做维护,资源主要涉及的是内存和CPU资源。所有的应用在被提交之后首先第一步都是需要做资源的申请的。业务提交之后会根据自身的资源消耗情况向ResourceManager做申请,ResourceManager需要做资源的分配,以及资源的回收监控。ResourceManagerNodeManager是每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliaryservice)。NodeManagerContainer(容器):Yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。容器是在MapReduce中执行任务的工作单位,其是一个资源的集合体,它是一个逻辑的概念,使用的时候将其分配创建,任务执行完毕之后,就会将容器回收,容器回收就是指回收容器中的CPU和内存资源。ResourceManager分配NodeManager的资源,在NodeManager上创建一个CPU和内存的集合体,这个集合体就是Container。ContainerMapReduce的基本概念Yarn简介与架构MapReduce在Yarn中的任务调度Yarn的高级特性对于Yarn的工作方式,以下将以MapReduce为例介绍Yarn中的任务调度,Yarn的调度方法和组件交互流程如下:MapReduce的执行流程用户向Yarn中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。任务提交之后ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束。MapReduce的执行流程ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务并要求NodeManager将对应的资源封装为Container,然后拉起,随后ApplicationMaster会将对应的task下发到Container中进行执行计算。NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。MapReduce的执行流程各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。MapReduce的执行流程MapReduce过程详解MapReduce过程详解总体来说:MapReduce的进程分为Map进程和Reduce进程,主要进程为:commit、Split、Map、Sort/Merge、Reduce。在计算进程中又包含了针对临时文件的操作。进程之间相互协作完成对应的目标。MapReduce过程详解MapReduce的基本概念Yarn简介与架构MapReduce在Yarn中的任务调度Yarn的高级特性当前Yarn支持内存和CPU两种资源类型的管理和分配。每个NodeManager可分配的内存和CPU的数量可以通过配置选项设置(可在Yarn服务配置页面配置)。Yarn.NodeManager.resource.memory-mb:用于当前NodeManager上正运行的容器的物理内存的大小。单位:MB。必须小于NodeManager服务器上的实际内存大小Yarn.NodeManager.vmem-pmem-ratio:为容器设置内存限制时虚拟内存跟物理内存的比值。容器分配值使用物理内存表示的,虚拟内存使用率超过分配值的比例不允许大于当前这个比例。Yarn.NodeManager.resource.cpu-vcore:可分配给container的CPU核数。建议配置为CPU核数的1.5-2倍。Yarn的容量分配参数调度器维护一群队列的信息。用户可以向一个或者多个队列提交应用。每次NodeManager心跳的时候,调度器根据一定的规则选择一个队列,再在队列上选择一个应用,尝试在这个应用上分配资源。调度器会优先匹配本地资源的申请请求,其次是同机架的,最后是任意机器的。当任务提交上来,首先会声明提交到哪个队列上,调度器会分配队列,如果没有指定则任务运行在默认队列。队列是封装了集群资源容量的资源集合,占用集群的百分比例资源,队列分为父队列,子队列,任务最终是运行在子队列上的。父队列可以有多个子队列。调度器选择队列上的应用,然后根据一些算法给应用分配资源Yarn资源分配队列容量调度器使得Hadoop应用能够共享的、多用户的、操作简便的运行在集群上,同时最大化集群的吞吐量和利用率。容量调度器容量调度器的任务选择调度时,按以下策略选择队列:资源利用量最低的队列优先,比如同级的两个队列Q1和Q2,它们的容量均为30,而Q1已使用10,Q2已使用12,则会优先将任务分配给Q1;(谁闲用谁)最小队列层级优先,例如:QueueA与QueueB.childQueueB,则QueueA优先;资源回收请求队列优先。然后按以下策略选择该队列中一个任务:按照任务优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。容量调度器容量保证:管理员可为每个队列设置资源最低保证和资源使用上限,所有提交到该队列的应用程序共享这些资源。灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,当该队列有新的应用程序提交,则其他队列释放的资源会归还给该队列。支持优先级:队列支持任务优先级调度(默认是FIFO)。多重租赁:支持多用户共享集群和多应用程序同时运行。为防止单个应用程序、用户或者队列独占集群资源,管理员可为之增加多重约束。动态更新配置文件:管理员可根据需要动态修改配置参数,以实现在线集群管理容量调度器特点动态内存管理可用来优化NodeManager中Containers的内存利用率。任务在运行过程中可能产生多个Container。当前,当单个节点上的Container超过机器运行内存大小时,即使集群总的配置内存利用还很低,NodeManager也会终止这些Containers。这样就会经常使用户作业失败。动态内存管理在没有标签调度之前,任务提交到哪个节点上是无法控制的,会根据一些算法及条件,集群随机分配到某些节点上。而标签调度可以指定任务提交到哪些节点上。比如之前需要消耗高内存的应用提交上来,由于运行在那些节点不可控,任务可能运行在普通性能的机器上。Yarn标签调度在Yarn中,ApplicationMaster与其他Container类似也运行在NodeManager上(忽略未管理的ApplicationMaster)。ApplicationMaster可能会由于多种原因崩溃、退出或关闭。如果ApplicationMaster停止运行,ResourceManager会关闭ApplicationMaster中管理的所有Container,包括当前任务在NodeManager上正在运行的所有Container。YarnAM作业保留机制ResourceManager会在另一计算节点上启动新的ApplicationMaster。不同类型的应用希望以多种方式处理AM重新启动的事件。MapReduce类应用目标是不丢失任务状态,但也能允许一部分的状态损失。但是对于长周期的服务而言,用户并不希望仅仅由于AM的故障而导致整个服务停止运行。Yarn支持在新的ApplicationMaster启动时,保留之前Container的状态,因此运行中的作业可以继续无故障的运行。YarnAM作业保留机制Yarn的组件之间进行交互时使用的响应的沟通协议,通过协议传输的方式保证了数据的传递可靠,Yarn中常用的协议有以下几种类型:Yarn的通信协议ApplicationClientProtocolJobClient通过该RPC协议提交应用程序、查询应用程序状态等。ResourceManagerAdministrationProtocolAdmin通过该RPC协议更新系统配置文件,比如节点黑白名单、用户队列权限等。ApplicationMasterProtocolAM通过该RPC协议向ResourceManager注册和撤销自己,并为各个任务申请资源。Yarn的通信协议ContainerManagementProtocol:AM通过该RPC要求NodeManager启动或者停止Container,获取各个Container的使用状态等信息。ResourceTrackerNodeManager通过该RPC协议向ResourceManager注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container运行情况。Yarn的通信协议请简述MapReduce的优点和缺点?请简述yarn的优势?请简述Yarn的框架组成?请简述ResourceManager在Yarn执行中的作用?请简述Shuffle过程的作用请简述容量调度器的作用?

MapReduce具有如下特点( )易于编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理。良好的扩展性:可通过添加节点以扩展集群能力。高容错性:通过计算迁移或数据迁移等策略提高集群的可用性与容错性。正确错误2.(多选)ResourceManager资源管理器其实并没有资源,也就相当于是,ResourceManager作为资源的管理者,实际上自身并没有资源,而是将节点内的资源的使用权全部划归到自己身上。A. 正确B. 错误

描述了MapReduce的基本概念讲解了Yarn简介与架构讲解了MapReduce在Yarn中的任务调度讲解了Yarn的高级特性学习推荐华为在线学习:/cn/华为认证-华为人才在线:/cn/talent/#/cert参考资料华为大数据认证:/cn/talent/#/cert/product-details?certifiedProductId=327&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=3.0百度百科:/item/谢谢95配色色系表RGB255/187/87RGB250/211/187RGB254/238/193RGB226/243/252RGB190/233/238RGB

153/54/54RGB

242/137/68RGB

253/211/81RGB

129/193/95RGB

86/196/210RGB

127/0/1RGB

237/109/0RGB

52/200/0RGB

98/178/48RGB

48/181/197RGB137/137/137RGB255/255/255RGB89/87/87RGB221/221/221RGB

35/24/21RGB181/181/181第5章Spark2x基于内存的计算引擎本章主要讲述Spark基于内存的计算引擎的基本技术原理通过学习本节将能够学习Spark基于内存的计算引擎的基本技术原理。通过本节学习可以掌握:Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理Spark是一种基于内存进行计算的分布式批处理引擎,主要工作是执行以下几种计算:数据处理,可以进行快速的数据计算工作,具备容错性和可拓展性。迭代计算,Spark支持迭代计算,可以对多步数据逻辑处理进行计算工作。数据挖掘,在海量数据基础上进行挖掘分析,可以支持多种数据挖掘和机器学习算法。Spark概述Spark是基于内存的分布式批处理引擎,它最大的特点是延迟小,具有很高的容错性和可拓展性,它和其他引擎的最大的区别在于,支持进行迭代计算,Spark会将计算中的临时文件或者临时数据存放在内存中,这样在进行反复的引用时,就不需要再从磁盘中进行数据读取,而是选择更快的内存进行该操作。那么相比于传统Hadoop架构,Spark理论速度会高于MapReduce100倍以上,但是,这个参数是有条件的,在迭代的层级较少的时候,这个差距并不明显,有可能Spark的计算速度没有MapReduce快,但是当反复的重复引用和迭代层数多以后,这个差距就会越来越明显。Spark特点Spark框架Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理SparkCore:类似于MR的分布式内存计算框架,Core是整体Spark计算的核心进程。SparkSQL:SparkSQL是一个用于处理结构化数据的Spark组件,作为ApacheSpark大数据框架的一部分,主要用于结构化数据处理和对数据执行类SQL查询。Spark技术栈构成SparkStreaming:微批处理的流处理引擎,将流数据分片以后用SparkCore的计算引擎中进行处理。相对于Storm,实时性稍差,优势体现在吞吐量上。Mllib和GraphX主要是一些算法库,涉及到机器学习算法和图计算算法StructuredStreaming为2.0版本之后的spark独有功能。Spark技术栈构成Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理Client:用户方,负责提交请求。Client和之前的概念一样,是一个引擎内的进程,提供了对外访问的接口和对内组件进程的交互。Driver:负责应用的业务逻辑和运行规划(DAG)。ApplicationMaster:负责应用的资源管理,根据应用需要,向资源管理部门(ResourceManager)申请资源。Executor:负责实际计算工作,一个应用会分拆给多个Executor来进行计算。SparkCore的进程Job:一个Application可能包含多个Job,每个action算子对应一个Job。action算子有collect,count等。Stage:每个Job可能包含多层Stage,划分标记为shuffle过程。Stage按照依赖关系依次执行。在每一个job子任务中,还包含有很多的计算工作。Task:具体执行任务的基本单位,被发到executor上执行。Task是整体计算中的最小单位,只有task的计算是不存在迭代关系的,但是task在执行的时候可能会依赖于某一些其他task的计算结果。Spark的应用构成SparkCore执行流程RDD(ResilientDistributedDatasets)即弹性分布数据集,指的是一个只读的,可分区的分布式数据集。这个数据集的全部或部分可以缓存在内存,在多次计算之间重用。RDD的优点:RDD是只读的,可提供更高容错能力。RDD的不可变性,可以实现HadoopMapReduce的推测式执行。RDD的数据分区特性,可以通过的本地性来提高能。RDD都是可序列化的,在内存不足时自动降级为磁盘存储。RDDRDD的依赖策略:窄依赖(Narrow)指父RDD的每一个分区最多被一个子RDD的分区所用。宽依赖(Wide)指子RDD的分区依赖于父RDD的所有分区,是Stage划分的依据。RDD的依赖Spark的应用调度Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理SparkSQL是Spark中基于SparkCore的一个计算工具,其将用户提交的SQL语句解析成为RDD,然后交由SparkCore执行,这样就可以在Spark中无缝对接SQL的语句查询,执行相关的任务。在SparkSQL中,数据资源被封装为DataSet和DataFrame。SparkSQL概述DataSet是一个由特定域的对象组成的强类型集合,可通过功能或关系操作并行转换其中的对象。DataSet是一个新的数据类型。DataSet与RDD高度类似,性能比较好。DataSet以Catalyst逻辑执行计划表示,并且数据以编码的二进制形式存储,不需要反序列化就可以执行sort、filter、shuffle等操作。DataSetDataFrame提供了详细的结构信息,使得SparkSQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame相比于DataSet和RDD添加了数据的结构信息,即schema。DataFrameRDD优点:类型安全,面向对象。缺点:RDD无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列化。序列化和反序列化的性能开销大,频繁的创建和销毁对象,开销势必会增加。DataFrame优点:自带scheme(设计)信息,降低序列化反序列化开销。Spark能够以二进制的形式序列化数据(不包括结构),当要操作数据时,就直接操作内存.由于Spark理解schema,所以知道该如何操作。缺点:不是面向对象的,编译期不安全。DataSet的特点:快,大多数场景下,性能优于RDD;避免不必要的格式转化。类型安全,类似于RDD,函数尽可能编译时安全。和DataFrame,RDD互相转化。DataSet具有RDD和DataFrame的优点,又避免它们的缺点。RDD、DataSet、DataFrame比较Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理StructuredStreaming是构建在SparkSQL引擎上的流式数据处理引擎。可以像使用静态RDD数据那样编写流式计算过程。当流数据连续不断的产生时,SparkSQL将会增量的、持续不断的处理这些数据,并将结果更新到结果集中。StructuredStreaming技术介绍StructuredStreaming的核心是将流式的数据看成一张数据不断增加的数据库表,这种流式的数据处理模型类似于数据块处理模型,可以把静态数据库表的一些查询操作应用在流式计算中,Spark执行标准的SQL查询,从无边界表中获取数据。所谓无边界表指的是新数据不断到来,旧数据不断丢弃,实际上是一个连续不断的结构化数据流。StructuredStreaming技术介绍StructuredStreaming在OutPut阶段可以定义不同的数据写入方式,有如下3种:CompleteMode:整个更新的结果集都会写入外部存储。整张表的写入操作将由外部存储系统的连接器完成。AppendMode:当时间间隔触发时,只有在ResultTable中新增加的数据行会被写入外部存储。这种方式只适用于结果集中已经存在的内容不希望发生改变的情况下,如果已经存在的数据会被更新,不适合适用此种方式。UpdateMode:当时间间隔触发时,只有在ResultTable中被更新的数据才会被写入外部存储系统。注意,和CompleteMode方式的不同之处是不更新的结果集不会写入外部存储。StructuredStreaming数据更新Spark定义与概念Spark的组件架构SparkCore技术原理SparkSQL技术原理StructuredStreaming技术原理SparkStreaming技术原理SparkStreaming计算基于DataStream,将流式计算分解成一系列短小的批处理作业。SparkStreaming本质仍是基于RDD计算,当RDD的某些partition丢失,可以通过RDD的血统机制重新恢复丢失的RDD。SparkStreaming概述事实上SparkStreaming绝对谈不上比Storm优秀。这两个框架在实时计算领域中,都很优秀,只是擅长的细分场景并不相同。SparkStreaming仅仅在吞吐量上比Storm要优秀。对于Storm来说,建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用对于SparkStreaming来说不要求纯实时,不要求强大可靠的事务机制,不要求动态调整并行度,那么可以考虑使用SparkStreaming。SparkStreaming和StormSparkStreaming和Storm对比点StormSparkStreaming实时计算模型毫秒级秒级实时计算延迟低高吞吐量低高事务机制支持完善支持,但不够完善容错性Zookeeper、Acker,非常强Checkpoint,WAL,一般动态调整并行度支持不支持请简述Spark的特点?请简述SparkStructuredStreaming的概念?请简述Spark的RDD的特点,以及为什么要使用RDD?请简述DataSet的优势?请简述StructuredStreaming的三种处理模式的区别?请简述SparkStreaming的应用场景?

(多选)窄依赖指的是父RDD的分区最多被子RDD的一个分区所依赖。正确错误2.(多选)以下哪些是Spark的部署模式?A. StandAloneB. YarnC. DockerD. Mesos

描述了Spark定义与概念讲解了Spark的组件架构讲解了SparkCore技术原理讲解了SparkSQL技术原理讲解了StructuredStreaming技术原理讲解了SparkStreaming技术原理学习推荐华为在线学习:/cn/华为认证-华为人才在线:/cn/talent/#/cert参考资料华为大数据认证:/cn/talent/#/cert/product-details?certifiedProductId=327&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=3.0百度百科:/item/谢谢131配色色系表RGB255/187/87RGB250/211/187RGB254/238/193RGB226/243/252RGB190/233/238RGB

153/54/54RGB

242/137/68RGB

253/211/81RGB

129/193/95RGB

86/196/210RGB

127/0/1RGB

237/109/0RGB

52/200/0RGB

98/178/48RGB

48/181/197RGB137/137/137RGB255/255/255RGB89/87/87RGB221/221/221RGB

35/24/21RGB181/181/181第5章Storm分布式流计算引擎本章主要讲述Storm实时流计算引擎的基本技术原理通过学习本节将能够学习Storm实时流计算引擎的基本技术原理。通过本节学习可以掌握:Storm基本概念Storm系统架构和执行流程Storm系统特性Storm消息可靠性Storm基本概念Storm系统架构和执行流程Storm系统特性Storm消息可靠性Storm是一个分布式、实时计算框架。具有以下几种特点:实时响应,低延迟;数据不存储,先计算;连续查询;事件驱动。Storm中分为了业务进程和数据进程,其中业务逻辑进程有以下几种:Topology是Storm中运行的一个实时应用程序Nimbus负责资源分配和任务调度Supervisor负责接受Nimbus分配的任务,启动和停止属于自己管理的worker进程Worker是Topology运行时的物理进程。每个Worker是一个JVM进程ZooKeeper为Storm服务中各进程提供分布式协作服务Storm概述Task:运行了Worker中的每一个Spout/Bolt的线程。Storm的数据进程有以下几种:Spout:在一个Topology中产生源数据流的组件,是数据输入进程。Bolt:在一个Topology中接受数据然后执行处理的组件,是数据输出进程。Tuple:Storm的核心数据结构,是消息传递的基本单元,不可变Key-Value对,这些Tuple会以一种分布式的方式进行创建和处理。Tuple指代为Storm每次收到的一个数据或一组数据,它是数据处理的基本单位。Stream:一个无边界的连续Tuple序列,也叫作流。是由多个连续tuple组成的一个带有顺序性的序列,其遵循先进先出的原则。执行输入计算和输出。Storm的逻辑进程Storm基本概念Storm系统架构和执行流程Storm系统特性Storm消息可靠性用户提交topology给Client,Client收到请求之后,解压执行jar包,然后将topology发送给Nimbus。Nimbus收到之后,会将JVM进程做分解,并且同时分配jobID,保证应用唯一性。Nimbus将JVM进程中需要执行的操作的摘要信息发送给Zookeeper。摘要信息中主要包含的是任务的信息和jar包的名称Storm执行流程zookeeper根据集群的综合负载,下发任务给Supervisor。Supervisor收到zookeeper下发的任务之后,会联系Nimbus下载对应的任务的jar包。Supervisor会解压jar包,创建worker进程,。worker启动之后,会将执行的任务封装为task,然后要求Supervisor封装executor。然后将task下发到executor中执行。Storm执行流程executor完成计算之后,会将结果返回给worker,worker整合结果之后返回给Supervisor,然后返回给Nimbus,Nimbus整合结果,反馈给Client。executor和worker会自我注销。(一般来说,Storm都是下发计算方法,然后一直持续运行的,如果想要不进行计算,就必须人为手工关闭进程,这时候,executor和worker才会做自我注销操作。)Storm执行流程一旦在执行的过程中出现问题,由于本身executor需要周期性的上报心跳,所以一旦executor出现问题,zookeeper就会及时获取,并且反馈信息给Supervisor,要求其重新启动worker或者是重新启动某一个task。Supervisor一旦出现故障,那么Zookeeper会直接要求其他的Supervisor执行未执行完成的任务Nimbus采用主备进程,一旦主Nimbus出现故障,我们可以进行及时的故障切换操作。Storm执行流程Storm基本概念Storm系统架构和执行流程Storm系统特性Storm消息可靠性Nimbus-HA数据可靠性Storm基本概念Storm系统架构和执行流程Storm系统特性Storm消息可靠性acker的工作流程如下所示:Spout创建一个新的Tuple时,会发一个消息通知acker去跟踪。Bolt在处理Tuple成功或失败后,也会发一个消息通知acker。acker会找到发射该Tuple的Spout,回调其ack或fail方法。在Storm里面一个tuple被完全处理的意思是:这个tuple以及由这个tuple所派生的所有的tuple都被成功处理。如果这个消息在Timeout所指定的时间内没有成功处理,这个tuple就被认为处理失败了。ACK机制在Storm中,消息可靠性是一种保证机制,主要是用于保证在计算的过程中对计算的准确性进行保证,Storm本身要求的是低延迟处理,那么在这种情况下,我们还需要保证整体处理的准确。我们提出了3种方式来对数据的计算准确性进行保证。ACK机制可靠级别处理机制说明最多一次无吞吐量最大,适用于消息可靠性较低的场景。最少一次Ack机制吞吐量较低,要求数据被完整处理,适用于消息可靠性要求高的场景。精确一次TridentTrident是Streaming提供的特殊的事务性API,吞吐量最低。最多一次:就是在整个数据输入到输出的阶段中,我们只需要进行最多一次准确性确认。一般来说,做准确性确认需要消耗系统的相关资源。那么最多一次确认消耗的开销最小,这样的话就可以保证在海量数据计算的情况下,尽可能多的节省资源最少一次:就是在整个数据输入到输出的阶段中,我们必须至少指定一次准确性确认,一般来说,最少一次的确认机制,都不会等于1次的,那么这样的话,确认机制就会消耗比较多的资源,那么计算可以消耗的资源就会减少,那么计算处理的数据量一般就不会很大。精确一次:精确一次就是通过程序调用API接口,进行精细化的确认,但是精细化的确认消耗的资源也是最大的。所以整体来说,精确一次的话,计算所能处理的资源也就最少。ACK机制Spout发送一个Tuple时,会通知Acker一个新的根消息产生了,Acker会创建一个新的tupletree,并初始化校验和为0。Bolt发送消息时向Acker发送anchortuple,刷新tupletree,并在发送成功后向Acker反馈结果。如果成功则重新刷新校验和,如果失败则Acker会立即通知

Spout处理失败。当tupletree被完全处理(校验和为0),Acker会通知Spout处理成功ACK机制请简述Storm的特点?请简述Storm的Nimbus的作用?请简述StormNimbus机制的原理?请简述ACK机制的优势?

以下哪个不是Storm的计算特点?实时响应低延迟事件驱动离线计算2.以下哪个不是Zookeeper在Storm中的执行作用?A. 监控执行B. 保证数据安全C. 下发ApplicationD. 分配任务

描述了Storm基本概念讲解了Storm系统架构和执行流程讲解了Storm系统特性讲解了Storm消息可靠性学习推荐华为在线学习:/cn/华为认证-华为人才在线:/cn/talent/#/cert参考资料华为大数据认证:/cn/talent/#/cert/product-details?certifiedProductId=327&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=3.0百度百科:/item/谢谢156配色色系表RGB255/187/87RGB250/211/187RGB254/238/193RGB226/243/252RGB190/233/238RGB

153/54/54RGB

242/137/68RGB

253/211/81RGB

129/193/95RGB

86/196/210RGB

127/0/1RGB

237/109/0RGB

52/200/0RGB

98/178/48RGB

48/181/197RGB137/137/137RGB255/255/255RGB89/87/87RGB221/221/221RGB

35/24/21RGB181/181/181第5章Flink流处理和批处理计算引擎本章主要讲述Flink流处理和批处理计算引擎的技术原理通过学习本节将能够学习Flink流处理和批处理计算引擎架构原理。通过本节学习可以掌握:Flink基本概念Flink架构Flink执行流程Flink相关技术原理Flink基本概念Flink架构Flink执行流程Flink相关技术原理Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink与Storm类似,属于事件驱动型实时流系统。Flink简介批处理在大数据世界有着悠久的历史。批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。批处理模式中使用的数据集通常符合下列特征:有界:批处理数据集代表数据的有限集合持久:数据通常始终存储在某种类型的持久存储位置中大量:批处理操作通常是处理极为海量数据集的唯一方法批处理与流处理流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batchProcessing)数据,不同记录间只维持最少量的状态。虽然大部分系统提供了用于维持某些状态的方法,但流处理主要针对副作用更少,更加功能性的处理进行优化。批处理与流处理Flink最适合的应用场景是低时延的数据处理场景:高并发处理数据,时延毫秒级,且兼具可靠性。典型应用场景有互联网金融业务、点击流日志处理、舆情(舆论情绪)监控等。Flink的特点有以下几种:低时延:提供ms级时延的处理能力。ExactlyOnce:提供异步快照机制,保证所有数据真正只处理一次。HA:JobManager支持主备模式,保证无单点故障。水平扩展能力:TaskManager支持手动水平扩展。Flink特点Flink基本概念Flink架构Flink执行流程Flink相关技术原理Datastorage底层是数据存储,是Flink计算的数据来源。部署模式分为了Singlenodeexecution和StandaloneorYarnCluster,其中SingleNode指代Flink可以进行单机独立部署,不依赖其他相关的平台,一般是用于测试环境中,而Standalone代表Flink可以进行独立的集群部署,不依赖其他大数据平台,YarnCluster表示Flink可以部署在Hadoop平台上,依托底层Yarn提供计算资源。Flink框架FlinkLocalRuntime表示是运行线程,所有的Flink计算都是在Runtime上完成的FlinkOptimizer,FlinkStreamBuilder等表示的是规划器相关的功能CommonAPI、ScalaAPI和JavaAPI表示的是对外提供的API接口,可以用于用户的开发调用,创建多种不同的工作流计算功能。Flink框架DataStream是数据模型,所有的数据在进入Flink到从Flink输出都必须要按照DataStream的模型来进行计算和数据的转换。Flink用类DataStream来表示程序中的流式数据。用户可以认为它们是含有重复数据的不可修改的集合(collection),DataStream中元素的数量是无限的。 Flink算子含有Window的是窗口操作,与后面的窗口操作相关连,之间的关系可以通过reduce、fold、sum、max函数进行管关联。connect:进行Stream之间的连接,可以通过flatmap、map函数进行操作。JoinedStream:进行Stream之间的join操作,类似于数据库中的join,可以通过join函数等进行关联。CoGroupedStream:Stream之间的联合,类似于关系数据库中的group操作,可以通过coGroup函数进行关联。KeyedStream:主要是对数据流依据key进行处理,可以通过keyBy函数进行处理。Flink算子Flink基本概念Flink架构Flink执行流程Flink相关技术原理在了解Flink的执行流程之前,Flink内部出现了一些新的进程,包含了Client、TaskManager、JobManager、TaskSlot四个进程。功能如下:FlinkClient主要给用户提供向Flink系统提交用户任务(流式作业)的能力。TaskManager是Flink系统的业务执行节点,执行具体的用户任务。JobManager是Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些TaskManager执行。TaskSlot(任务槽):类似yarn中的container用于资源隔离,但是该组件只包含内存资源,不包含cpu资源。Flink进程FlinkonYarn执行流程Flink基本概念Flink架构Flink执行流程Flink相关技术原理用户实现的Flink程序是由Stream数据和Transformation算子组成。Stream是一个中间结果数据,而Transformation是算子,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。流式数据运行原理一个Stream可以被分成多个Stream分区(StreamPartitions),一个Operator可以被分成多个OperatorSubtask,每一个OperatorSubtask是在不同的线程中独立执行的。一个Operator的并行度,等于OperatorSubtask的个数,一个Stream的并行度等于生成它的Operator的并行度。流式数据运行原理Flink支持基于时间窗口操作,也支持基于数据的窗口操作。Flink窗口技术标准若按分割标准划分可以分为timeWindow、countWindow两种。如果按窗口行为划分可以分为TumblingWindow、SlidingWindow、自定义窗口。窗口按驱动的类型分为时间窗口(timeWindow)和事件窗口(countWindow)。窗口可以是时间驱动的(TimeWindow,例如:每30秒钟),也可以是数据驱动的(CountWindow,例如:每一百个元素)。Flink窗口技术翻滚窗口滚动窗口会话窗口checkpoint机制是Flink运行过程中容错的重要手段。checkpoint机制不断绘制流应用的快照,流应用的状态快照被保存在配置的位置(如:JobManager的内存里,或者HDFS上)。Flink容错机制Flink容错机制请简述批处理和流处理的区别?请简述Flink的基本框架原理?请简述Flink三种窗口机制的应用场景?

(多选)以下哪些不是批处理和流处理的区别?延迟性计算数据量性能占用空间2.以下哪个是Flink的部署模式A. StandAloneB. OnYarnC. LocalD. SingleNode

描述了Flink基本概念讲解了Flink架构讲解了Flink执行流程讲解了Flink相关技术原理学习推荐华为在线学习:/cn/华为认证-华为人才在线:/cn/talent/#/cert参考资料华为大数据认证:/cn/talent/#/cert/product-details?certifiedProductId=327&authenticationLevel=CTYPE_CARE_HCIA&technicalField=PSC&version=3.0百度百科:/item/谢谢187配色色系表RGB255/187/87RGB250/211/187RGB254/238/193RGB226/243/252RGB190/233/238RGB

153/54/54RGB

242/137/68RGB

253/211/81RGB

129/193/95RGB

86/196/210RGB

127/0/1RGB

237/109/0RGB

52/200/0RGB

98/178/48RGB

48/181/197RGB137/137/137RGB255/255/255RGB89/87/87RGB221/221/221RGB

35/24/21RGB181/181/181Zookeeper分布式集群管理技术本章主要讲述Zookeeper分布式集群管理技术的基本技术原理通过学习本节将能够学习Zookeeper分布式集群管理技术架构原理。通过本节学习可以掌握:Zookeeper简介Zookeeper的属性Zookeeper的特性Zookeeper简介Zookeeper的属性Zookeeper的特性Zookeeper分布式服务框架主要是用来解决分布式应用中经常遇到的一些数据管理问题,提供分布式、高可用性的协调服务能力,在FusionInsight集群中主要用途是保存上层组件的元数据,并保证其主备倒换。Zookeeper是分布式协调组件,主要用于保护整个Hadoop中涉及分布式的相关的组件的进程安全性和数据的一致性。Zookeeper概述Zookeeper在Hadoop中的作用很大,其保证了Hadoop的正常运行,主要的功能和作用有以下几个:1.配置管理:集中管理配置

用户可以在ZooKeeper中修改配置,所有跟这个配置关联的系统都可以获得变更,可省去手动拷贝配置,还保证了可靠和一致性。Zookeeper概述2.名字服务分布式环境中,经常需要对应用/服务进行统一命名,便于识别不同服务,通过名称来获取资源或服务的地址。类似于域名与ip之间对应关系,域名容易记住,而ip不便记忆。Zookeeper概述3.分布式锁很多分布式系统有多个可服务的窗口,但是在某个时刻只让一个服务去干活,当这台服务出问题的时候分布式锁释放,立即failover到另外的服务。这在很多分布式系统中都是这么做,即LeaderElection(Leader选举)Zookeeper概述4.集群管理在分布式集群中,经常会有硬件故障、软件故障、网络问题、节点进出问题等。集群中(Master节点)需要感知到这种变化,然后根据这种变化做出对应的决策。Zookeeper概述Zookeeper的特点主要由以下6点组成:最终一致性:为客户端展示同一视图,这是zookeeper最重要的功能。可靠性:如果消息被一台服务器接受,那么它将被所有的服务器接受。实时性:Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。等待无关(wait-free):慢的或者失效的client不干预快速的client的请求。原子性:更新只能成功或者失败,没有中间状态。顺序性:所有Server,同一消息发布顺序一致。Zookeeper特点Zookeeper简介Zookeeper的属性Zookeeper的特性ZooKeeper集群由一组Server节点组成,这一组Server节点中存在一个角色为Leader的节点,其他节点都为Follower。当客户端Client连接到ZooKeeper集群,并且执行写请求时,这些请求会被发送到Leader节点上,然后Leader节点上数据变更会同步到集群中其他的Follower节点。Leader节点在接收到数据变更请求后,首先将变更写入本地磁盘,以作恢复之用。当所有的写请求持久化到磁盘以后,才会将变更应用到内存中。Zookeeper框架构成ZooKeeper使用了一种自定义的原子消息协议,在消息层的这种原子特性,保证了整个协调系统中的节点数据或状态的一致性。Follower基于这种消息协议能够保证本地的ZooKeeper数据与Leader节点同步,然后基于本地的存储来独立地对外提供服务。Zookeeper特征当一个Leader节点发生故障失效时,失败故障是快速响应的,消息层负责重新选择一个Leader,继续作为协调服务集群的中心,处理客户端写请求,并将ZooKeeper协调系统的数据变更同步(广播)到其他的Follower节点。Zookeeper特征在Zookeeper中,每个节点(znode)中存储的是同步相关的数据

温馨提示

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

评论

0/150

提交评论