中国人民大学信息学院董兆安内容来自CSDN等互联网资源大数据及其主要特征2•规模(Volume)、种类(Variety)、速度(Velocity)–2001年,道格.莱尼(DougLaney)VolumeVolumeVarietyVolume模态多样VelocityVolume速度极快体量巨大文本视频图片音频到2020年,数据总量达40ZB,人均5.2TB分享的内容条目超过25亿个/天,增加数据超过500TB/天关于大数据定义的误解••Other“V”slikeveracity,validity,value,etc.areaspirationalqualitiesofalldata,notdefinitionalqualitiesofbigdata.3硬件、技术、数据不断进化4传统的数据处理ExternalDataSourcesExtractTransformLoadDataWarehouseIntegratedstorageDataprocessingUsersSQL数据分析的需求也逐渐提高•从海量数据中快速获取有价值信息•低延迟、高性能、分布式、可扩展、容错。6RTAPOLAPOLTP需求变化7Real-TimeNon-InteractiveBatchInteractiveOnlinesystemsRealtimeAnalyticsComplexeventprocessingDatapreparationIncrementalbatchprocessingDashboardsOperationalbatchprocessingEnterprisereportsDataminingParameterizedReportsDrilldownVisualizationExploration0--5s5s--1m1m--1h1h+场景不同-工具不同-视角不同–Hortonworks将应用需求进行了如下划分:•实时应用场景(0~5s):–Storm、S4、ClouderaImpala,ApacheDrill等;•交互式场景(5s~1m):–最好支持SQL,:ClouderaImpala、ApacheDrill、Shark等;•非交互式场景(1m~1h):–MapReduce、Hive、Pig、Stinger等;•批处理场景(1h+)–运行时间较长,处理数据量较大,对容错性和扩展性要求较高–MapReduce、Hive、Pig、Stinger等。8大数据分析与处理架构——一个案例9IngestLandingandAnalyticsSandboxZoneIndexes,facetsHive/HBaseColStoresDocumentsInVarietyofFormatsAnalyticsMapReduceRepository,WorkbenchIngestionandReal-timeAnalyticZoneDataSinksFilter,TransformIngestCorrelate,ClassifyExtract,AnnotateWarehousingZoneEnterpriseWarehouseDataMartsQueryEnginesCubesDescriptive,PredictiveModelsModelsWidgetsDiscovery,VisualizerSearchAnalyticsandReportingZoneMetadataandGovernanceZone9Connectors大数据处理与分析技术•数据采集•数据处理•数据存储•统计分析•数据挖掘•模型预测•数据可视化•元数据管理10数据处理的几种模式•转换Transformer–Convertpayloadormodifyheaders•过滤Filter–Discardmessagesbasedonbooleanevaluation•路由Router–Determinenextchannelbasedoncontent•分割Splitter–Generatemultiplemessagesfromone•聚集Aggregator–Assembleasinglemessagefrommultiple11几种平台介绍•MPP•Hadoop•storm•spark12开源的大数据处理平台•SQLonHadoop•Hortonworks:Tez、Stinger•Cloudera:Impala•Facebook:Hive,Presto•Google发布了Dremel和PowerDrill•EMC推出Pivotal+HAWQ•开源数据仓库brighthouse–基于MySQL的数据仓库存储引擎13开源的大数据处理平台•NO-MapReduce系统–微软的DAG任务计算模型Dryad–Google的图批量同步处理系统Pregel和增量式计算框架Percolator–Yahoo!的数据流计算系统S4、–NYU的共享内存处理系统Piccolo–Berkeley的交互式实时处理系统Spark等等。•NEWSQL系统–VoltDB–mySQL集群14Hadoop的版本1520072008200920102011201220130.14.X0.15.X0.16.X0.17.X0.18.X0.19.X0.20.X0.21.X0.20.2X0.22.X0.23.X1.X2.XSecurityYARNHDFSHA16IntelHadoop*17Hadoop1.018Hadoopeco-systemExternalDataSourcesHDFSstoragelayerProcessingFramework(Map-Reduce)HBaseSqoop+FlumePigHiveQLMahoutHiveMetastore(HCatalog)OozieClouderaNavigatorMorevarieddatasourceswithmanymoreaccess/retentionrequirementsUsersHadoopeco-systemExternalDataSourcesHDFSstoragelayerProcessingFramework(Map-Reduce)HBaseSqoop+FlumePigHiveQLMahoutHiveMetastore(HCatalog)OozieClouderaNavigatorDataaccessedthroughmultipleentrypointsUsersHadoopeco-systemExternalDataSourcesHDFSstoragelayerProcessingFramework(Map-Reduce)HBaseSqoop+FlumePigHiveQLMahoutHiveMetastore(HCatalog)OozieClouderaNavigatorUsersLotsofnewconsumersofthedataHadoopeco-systemExternalDataSourcesHDFSstoragelayerProcessingFramework(Map-Reduce)HBaseSqoop+FlumePigHiveQLMahoutHiveMetastore(HCatalog)OozieClouderaNavigatorUsersOneaccesscontrolmechanism:filesHadoop1.0——HDFS存储模型23Hadoop1.0——计算模型•MapReduce24节点功能与角色25集群部署示意26YARN和Hadoop2.027–comprisesthelatestreleaseacrossHadoopandthekeyrelatedprojectsintoasingleintegratedandtestedplatform•Coreservices•Dataservices•Operationalservices28Hadoop2.0Hadoop2.0•YARN的基本思想是将JobTracker的两个主要功能资源管理和作业调度/监控分离–主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)29对比:Hadoop1.0•JobTracker和TaskTracker30对比:Hadoop2.031运行在YARN上的计算框架•YARN=YetAnotherResourceNeogitator.32内存计算——SparkandShark33•High-SpeedIn-MemoryAnalyticsoverHadoopandHiveDataUCBERKELEY34MapReduce——数据共享于HDFSiter.1iter.2...InputHDFSreadHDFSwriteHDFSreadHDFSwriteInputquery1query2query3result1result2result3...HDFSreadSlowduetoreplication,serialization,anddiskIO35iter.1iter.2...InputSpark——数据共享于内存DistributedmemoryInputquery1query2query3...one-timeprocessing10-100×fasterthannetworkanddiskSpark之RDD——弹性分布式数据集37伯克利架构38分布式实时计算系统Storm–流数据处理•Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。•S4(SimpleScalableStreamingSystem)是一个分布式流处理引擎,开发者可以在这个引擎基础上开发面向无界的,不间断的流数据处理应用。–分布式rpc•由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用。•搜索引擎本身也是一个分布式rpc系统。39STORM角色•Nimbus:–负责资源分配和任务调度。•Supervisor:–负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。•Worker:–运行具体处理组件逻辑的进程。•Task:–worker中每一个spout/bolt的线程称为一个task.40基本逻辑——概念•Spout:–在一个topology中产生源数据流的组件。–Spout是一个主动的角色,其接口中有个nextTuple()函数,–storm框架会不停地调用此函数,用户只要在其中生成源数据即可。•Bolt:在一个topology中接受数据然后执行处理的组件。–Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。–Bolt是一个被动的角色,•Tuple:–一次消息传递的基本单元。•Stream:–源源不断传递的tuple就组成了stream。•Topology:–storm中运行的一个实时应用程序,–因为各个组件间的消息流动形成逻辑上的一个拓扑结构。41大数据处理平台——MPP42应用程序通过Master主机访问数据在存储节点和Master主机之间交换数据每一个存储节点都是独立的PgSQL数据库(无共享)QueryPlanMPP=MassiveParallelProcessing海量并行处理结构数据分发43Share-Nothing的完全并行架构44共享磁盘例如:OracleRACDBSAN/共享磁盘DBDBDB网络SAN/FC完全共享例如:SMP服务器DB磁盘完全不共享例如:GreenplumDBDBDBDB网络磁盘磁盘磁盘磁盘Master注:所有的共享资源都用蓝灰色表示基于外部表的高速数据加载利用并行数据流引擎,Greenplum可以直接用SQL操作外部表数据加载完全并行,加载速度可达4.5TB/小时45Ma