“1+X”(高级)01-传统大数据系统架构_第1页
“1+X”(高级)01-传统大数据系统架构_第2页
“1+X”(高级)01-传统大数据系统架构_第3页
“1+X”(高级)01-传统大数据系统架构_第4页
“1+X”(高级)01-传统大数据系统架构_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

传统大数据系统架构学习完本课程后,你将能够:1.了解大数据技术架构2.了解传统大数据技术方案课程目标课程目录1.大数据技术架构1.1数据收集层1.2数据储存层1.3资源管理与服务协调层1.4分析计算引擎层1.5数据可视化层2.传统大数据技术方案大数据技术架构数据收集层SqoopDataXFlume数据储存层HDFSHiveHbase资源管理与服务协调层Yarn分析计算引擎层SparkFlink数据可视化层Power

BITableauRedashRedisKafkaMesosMapReduceSupersetCanalStormSparkSreamingPrestoImpala数据收集层是否结构化结构化数据收集非结构化数据收集是否实时离线数据收集实时数据收集1、Sqoop2、DataX3、Canal1、Sqoop2、DataX1、Canal2、Flume1、Flume数据收集层在大数据系统架构的最底层,负责采集数据,是整个大数据系统的数据接入端。接入数据可以分为结构化数据接入和非结构化数据接入,也可以分为离线数据接入和实时数据接入。数据收集层-SqoopSqoop-“SQL到Hadoop和Hadoop到SQL”Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到HadoopHDFS,并从Hadoop文件系统导出到关系数据库。它由Apache软件基金会提供。Sqoop导入:导入工具从RDBMS向HDFS导入单独的表。Sqoop导出:导出工具将一组文件从HDFS导出回RDBMSSqoop主要应用于传统关系型数据库和Hadoop生态之间的数据交换数据收集层-DataXDataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS等各种异构数据源之间高效的数据同步功能。将网状同步链路变成星型数据链路可以对接各种数据源提供可靠的数据质量监控提供丰富的数据转换功能拥有强劲的同步性能和健壮的容错机制广泛应用于离线数据同步场景数据收集层-CanalCanal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。Canal模拟MysqlSlave的交互协议,伪装自己为MysqlSlave,向MysqlMaster发送Dump协议,MysqlMaster收到Dump请求,开始推送BinaryLog给Slave也就是(Canal),Canal解析BinaryLog对象(原始为Byte流)部署方便快捷无告警和监控,需要对接外部系统可用于数据库镜像可用于数据库实时备份可用于实时数仓的数据同步目前主要支持MySQL数据库数据收集层-FlumeFlume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力

。Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase。Flume的管道是基于事务,保证了数据在传送和接收时的一致性。Flume主要应用于Web日志采集、内容推送,也可以用作数据同步工具,比如以利用插件把关系型数据实时增量的导入到Hdfs外部数据源。课程目录1.大数据技术架构1.1数据收集层1.2数据储存层1.3资源管理与服务协调层1.4分析计算引擎层1.5数据可视化层2.传统大数据技术方案数据存储层四种存储场景离线存储在线存储内存存储消息存储1、Hbase1、HDFS2、Hive1、Redis1、Kafka数据存储层在大数据系统架构中负责存储数据,向上支撑不同的应用场景,常见的场景有离线存储、在线存储、内存存储、消息存储。数据存储层-HDFSHDFS,是HadoopDistributedFileSystem的简称,是Hadoop抽象文件系统的一种实现。HDFS是易于扩展的分布式文件系统,运行在大量普通廉价机器上,提供容错机制为大量用户提供性能不错的文件存取服务。HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。适合海量数据存储适合大数据量批处理一次性写入,多次读取保证数据一致性通过多副本提高可靠性数据存储层-HiveHive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。操作接口采用类SQL语法,学习成本低避免了去写MapReduce,开发效率高适用于海量结构化数据离线分析WEB访问日志分析(典型应用)可用于构建离线数据仓库数据存储层-HbaseHBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。海量存储,列式存储,高并发极易扩展,可以横向添加RegionSever的机器,进行水平扩展可以支撑高并发KV查询场景可以支撑实时或批量数据更新数据存储层-Redis高性能、高可用丰富数据类型支持事务丰富客户端、多种语言API可用作消息的发布、订阅Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)等。数据存储层-KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景。高吞吐量分布式、易扩展支持在线、离线健壮、高并发广泛应用于日志采集、消息同步、实时处理等场景课程目录1.大数据技术架构1.1数据收集层1.2数据储存层1.3资源管理与服务协调层1.4分析计算引擎层1.5数据可视化层2.传统大数据技术方案资源管理与服务协调层两个资源管理框架YarnMesos资源管理与服务协调层,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。目前主流的计算框架如:MR、Spark等,都可以运行在该层之上,目前主流的框架有Yarn和Mesos。资源管理与服务协调层-YarnApacheHadoopYARN是一种新的Hadoop资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。YARN相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。YARN提供多类型资源调度,提供多种资源调度器,支持多租户YARN支持内存和CPU两种资源隔离可以同时运行长应用程序和短应用程序可以支撑Hadoop生态的各种计算框架资源管理与服务协调层-MesosApacheMesos是一个集群管理器类似于YARN,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。更轻量,负责供给资源,不负责调度资源提高分布式集群的资源利用率,易扩展支持SparkonMesos,JenkinsonMesos可以作为docker的编排服务课程目录1.大数据技术架构1.1数据收集层1.2数据储存层1.3资源管理与服务协调层1.4分析计算引擎层1.5数据可视化层2.传统大数据技术方案分析计算引擎层三种计算场景在线离线流式即席查询(ADHOC)1、Impala2、Presto离线批处理1、MapReduce2、Spark实时流处理1、SparkStreaming2、Flink3、Storm分析计算引擎层读取存储层的数据,按需进行数据运算,输出计算结果。计算引擎按计算场景的不同可分为在线计算、离线计算和流式计算,向上支撑不同的需求场景。分析计算引擎层-在线计算-ImpalaImpala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。它是一个用C++和Java编写的开源软件。与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。使用Impala,与其他SQL引擎(如Hive)相比,用户可以使用SQL查询以更快的方式与HDFS或HBase进行通信。基于内存进行计算,能够对PB级数据进行交互式实时查询、分析无需转换为MR,直接读取HDFS及Hbase数据,从而大大降低了延迟兼容HiveSQL,常用于即席查询场景分析计算引擎层-在线计算-PrestoPresto是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto完全基于内存的并⾏计算,分布式SQL交互式查询引擎,是一种MPP架构,多个节点管道式执⾏,⽀持任意数据源(通过扩展式Connector组件),数据规模GB~PB级,查询速度比hive快5-10倍。架构清晰,是一个能够独立运行的系统,不依赖于任何其他外部系统数据结构简单,列式存储,逻辑行,大部分数据都可以轻易的转化成presto所需要的这种数据结构可以对接多种数据源,做跨源数据计算Presto常被用于交互式查询场景,快速返回结果分析计算引擎层-离线计算-MapReduceHadoopMapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。MapReduce是采用一种分而治之的思想设计出来的分布式计算框架,MR由两个阶段组成:1、Map阶段(把复杂的任务分解为若干个“简单的任务”来处理)2、Reduce阶段(对map阶段的结果进行汇总)适合海量数据批处理适合处理半结构和无结构化数据性能可随机器数量线性扩展Web访问日志分析(典型应用)可应用于机器学习(如:Mhout)分析计算引擎层-离线计算-SparkSpark是UCBerkeleyAMPlab(加州大学伯克利分校AMP实验室)所开源的类HadoopMapReduce的通用并行框架,专门用于大数据量下的迭代式计算。Spark运算比Hadoop的MapReduce框架快,原因是Hadoop在一次MapReduce运算之后,会将数据的运算结果从内存写入到磁盘中,第二次Mapredue运算时在从磁盘中读取数据,所以其瓶颈在2次运算间的多余IO消耗.。Spark则是将数据一直缓存在内存中,直到计算得到最后的结果,再将结果写入到磁盘,所以多次运算的情况下,Spark是比较快的。快速:运算速度快,比MR快10到100倍易用:Spark提供了支持多种语言的API,如Scala、Java、Python、R等,使得用户开发Spark程序十分方便通用:Spark提供了一系列面向不同应用需求的组件,主要有SparkSQL、SparkStreaming、MLlib、GraphX分析计算引擎层-流式计算-SparkStreamingSparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。数据可以由多个源取得,例如:Kafka,Flume,Twitter,ZeroMQ,Kinesis或者TCP接口,同时可以使用由如map,reduce,join和window这样的高层接口描述的复杂算法进行处理。最终,处理过的数据可以被推送到文件系统,数据库和HDFS。编程语言丰富、编程简单框架封装层级高,封装性好高吞吐、可容错微批处理,时间延迟较大适用于对时延要求在分钟级及以上的应用场景分析计算引擎层-流式计算-StormApacheStorm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。框架简单毫秒级延迟,实时性好编程成本高,Debug比较复杂可用于秒级延迟的应用场景目前逐渐被Flink取代分析计算引擎层-流式计算-Flink低延迟、高吞吐,能保证数据一致性编程成本低,已支持SQL统一了流处理和批处理可用于秒级延迟的应用场景目前正在被广泛应用于实时流处理场景ApacheFlink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。课程目录1.大数据技术架构1.1数据收集层1.2数据储存层1.3资源管理与服务协调层1.4分析计算引擎层1.5数据可视化层2.传统大数据技术方案数据可视化层数据可视化:利用计算机图形学和图像处理技术,将数据转换为图形或者图像在屏幕上显示出来进行交互处理的理论方法和技术。数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。数据可视化随着平台的拓展、应用领域的增加,表现形式的不断变化,从原始的BI统计图表,到不断增加的诸如实时动态效果、地理信息、用户交互等等。数据可视化的概念边界不断扩大。数据可视化层是否开源商业软件开源软件1、Tableau2、Power

BI1、Redash2、Superset数据可视化层软件按是否开源可以分为商业软件和开源软件,Tableau和Power

BI是目前主流的商业软件,Redash和Superset是主流的开源软件。数据可视化层-TableauTableauSoftware致力于帮助人们查看并理解数据。Tableau帮助任何人快速分析、可视化并分享信息。数万家客户通过使用Tableau在办公室或随时随地快速获得结果。数以万计的用户使用TableauPublic在博客与网站中分享数据。快速分析、简单易用支持各种数据源,包括hadoop数据源炫酷智能仪表板自动更新、顺时共享数据可视化层-Power

BIPower

BI是一种商业分析解决方案,可帮助对数据进行可视化、在组织中共享见解、或将见解嵌入应用或网站中。连接到数百个数据源,并使用实时仪表板和报表让数据变得生动。高颜值-可交互、钻取的仪表板高智商-问与答功能,让你的报告会说话高效率–数据源可配置自动更新,实现实时的仪表板展现门槛低-可轻松处理各种量级的数据灵活-可拓展的可视化图表数据可视化层-RedashRedash是一款开源的BI工具,提供了基于web的数据库查询和数据可视化功能。在数据运维人员的日常工作中,常会遇到需要将数据库中的数据查询并展示出来的问题,可能总是需要让前端开发人员来做web页面帮助完成这些需求。Redash提供了这么一种简单便捷的方式将这些工作标准化:在web页面上输入sql语句,使用查询返回的结果构造数据可视化图表,用户可以将这些图表结果拖动构造成自己需要的数据面板,在很大程度上可以缓解数据运维人员对前端开发人员的需求。数据表或数据模型可以在不同的数据源可快速建立直观的报表可设置权限,保护核心、敏感的数据和图表可共享有价值的数据和图表数据可视化层-SupersetSuperset是一款由Airbnb开源的“现代化的企业级BI(商业智能)Web应用程序”,其通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。集成数据查询功能,支持多种数据库通过NVD3/D3预定义了多种可视化图表,满足大部分的数据展示功能提供细粒度安全模型,可以在功能层面和数据层面进行访问控制课程目录1.大数据技术架构2.传统大数据技术方案2.1Google大数据方案2.2Hadoop开源大数据方案2.3

Spark开源大数据方案Google大数据方案Google提出了一整套基于分布式并行集群方式的基础架构技术,该技术利用软件的能力来处理集群中经常发生的结点失效问题。Google使用的大数据平台主要包括3个相互独立又紧密结合在一起的系统:Google文件系统(GoogleFileSystem,GFS),针对Google应用程序的特点提出的MapReduce编程模式,以及大规模分布式数据库BigTable。Google大数据方案GFSMapReduceBigTableGoogle大数据方案-GFSGFS(GoogleFileSystem)文件系统,一个处理大规模数据密集应用的,可伸缩的分布式文件系统。GFS构建在廉价服务器之上,集群是一组计算机一起工作,提供数组存储,数据处理和资源管理。它将服务器故障视为正常现象,通过软件的方式自动容错,在保证系统可靠性和可用性的同时,大大降低系统的成本。GFS系统的节点可以分为三种角色1、GFSMaster(主控服务器)2、GFSChunkServer(CS,数据块服务器)3、GFS客户端Google大数据方案-MapReduceMapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个Map函数处理一个基于key/valuepair的数据集合,输出中间的基于key/valuepair的数据集合;然后再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。MapReduce架构的程序能够在大量的普通配置的计算机上实现并行化处理。这个系统在运行时只关心:如何分割输入数据,在大量计算机组成的集群上的调度,集群中计算机的错误处理,管理集群中计算机之间必要的通信。Google大数据方案-BigTableBigTable是一个分布式存储系统,它可以支持扩展到很大尺寸的数据:PB级别的数据,包含几千个商业服务器。Google的许多项目都存储在BigTable中,包括WEB索引、GoogleEarth和GoogleFinance。这些应用对BigTable提出了截然不同的需求,无论是从数据量(从URL到网页到卫星图像)而言,还是从延迟需求(从后端批量处理到实时数据服务)而言。尽管这些不同的需求,BigTable已经为所有的Google产品提供了一个灵活的、高性能的解决方案。Bigtable的数据模型是一个稀疏的、分布式的、持久化的多维有序Map。这张Map针对行键、列名和时间戳建立了索引;Map中的每个值都是一串未解释的字节数组。具体模型如下:(row:string,column:string,time:int64)->string一个Bigtable集群存储了大量的tables。每一个表都由一组tablets构成,每一个tablet包含一个行范围内的数据。初始情况下,每个表仅包含一个tablet。课程目录1.大数据技术架构2.传统大数据技术方案2.1Google大数据方案2.2Hadoop开源大数据方案2.3

Spark开源大数据方案Hadoop开源大数据方案一个离线批处理方案:数据通过Flume写入HDFS,使用MapReduce对原始数据集进行加工处理,并将处理结果写入HDFS,通过Sqoop将结果数据导入Hbase,对外提供明细数据查询服务,如电信运营商的详单查询服务。日志数据HDFSMapReduce(ETL)HDFSFlumeHbase明细查询服务数据源Sqoop原始数据集结果数据集明细数据存储Hadoop开源大数据方案一个离线数仓方案:数据通过Sqoop抽取和Flume流式写入进入数仓,使用HDFS进行数据存储,使用HiveSQL进行计算,使用Oozie进行任务调度,计算结果写入Mysql,对外提供数据访问,支撑可视化数据应用。日志数据ODSDWDDWSADSHIVE数据仓库FlumeMysql数据集市RedashTableau数据应用数据源Sqoop业务数据SqoopHadoop开源大数据方案一个实时ODS方案:业务数据的Binlog通过Canal写入Kafka,使用HbaseConnect,将Kafka中的binlog数据实时更新到Hbase中,在Hbase中构建了一个实时的ODS库,通过Impala计算引擎,对外提供ODS库的ADHOC查询服务。ODSHBASEImpala计算引擎ADHOC数据应用数据源业务数据CanalKAFKAHb

温馨提示

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

评论

0/150

提交评论