《大数据中台技术架构详细方案.docx》由会员分享,可在线阅读,更多相关《大数据中台技术架构详细方案.docx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、大数据中台技术架构详细方案非常小的“批”,借此即可通过批处理引擎的原生语义进行处理。这种方式的 实际效果非常好,但相比真正的流处理框架在性能方面依然存在缺乏。综上所述,Spark是多样化工作负载处理任务的最正确选择。Spark批处理能 力以更高内存占用为代价提供了无与伦比的速度优势。对于重视吞吐率而非延 迟的工作负载,那么比拟适合使用Spark Streaming作为流处理解决方案。而Flink作为更新一代的处理框架,拥有更快的计算能力,更低的延迟, 已经慢慢崭露头角。不过一个框架的应用,特别是开源框架,需要足够长的时 间进行运行,测试和优化。大数据技术在开源社区的推动下,迭代日新月异。 在不
2、久的将来,相信Flink会像Spark取代Storm 一样,逐渐成为大数据处 理技术的主流。3. 3数据查询经过处理后的数据,还需要有高效的查询引擎才能被用户接触和使用。目 前OLAP的查询技术框架大致可分为三类:基于HBase做预聚合:如Opentsdb, Kylin等,均需指定预聚合的指标, 在数据接入的时候进行聚合运算,适合相对固定,维度较多的业务报表类需求基于Parquet做列式存储:如Presto, Drill, Impala等,基本是完全 基于内存的并行计算,Parquet系能降低存储空间,提高10效率,以离线处理 为主,很难提高数据写的实时性,超大表的Join支持可能不够好基于L
3、ucene做外部索引:如ElasticSearch, Solr等,能够满足的的查 询场景远多于传统的数据库存储,但对于日志、行为类时序数据,所有的搜索 请求都也必须搜索所有的分片,另外,对于聚合分析场景的支持也是软肋我们以常见的Presto, Druid, Kylin三个模型来讲讲各自的特点:Presto:由Facebook开源,是一个分布式数据查询框架,原生集成了 Hive、Hbase和关系型数据库。它背后所使用的执行模式与Hive有根本的不同,并没 有使用MapReduce。因其所有的处理都在内存中完成(与上文的Spark类似), 大局部场景下要比Hive快一个数量级Druid:由Meta
4、Market开源,是一个分布式、面向列式存储的准实时分析 数据存储系统,延迟性最细颗粒度可到5分钟。它能够在高并发环境下,保证 海量数据查询分析性能,同时又提供海量实时数据的查询、分析与可视化功能Kylin: Cube预计算技术是其核心,基本思路是预先对数据作多维索引, 查询时只扫描索引而不访问原始数据从而提速。劣势在于每次增减维度必须对 Cube进行历史数据重算追溯,非常消耗时间。据说Kylingence在前几天的新品发布会上已经解决了这个问题,拭目以待下列图引自快手在OLAP技术选型时的评价,以:OLAP技术实现方案比照Hive / SparkSQLKylinESDruid好好中好查询性能
5、差好中好差中好好高并发差好好好SchemaiStl好差好好精确去重翊蟠期33$ ISQL接口好好中微信骂:ourStone很多时候,在计算和查询这块没有明显的边界区分。这里为了方便阐述分 成了两个局部。事实上,对于技术能力比拟强的团队,可以针对这些开源系统进行魔改,比方采用Kylin的预计算能力+Druid的查询引擎,来提高查询的速度等等。4.数据可视化及分析在数据可视化这块,一般会采取三个途径来进行数据展示。最基础的利用 开源的图表库,如国外的HighCharts、D3,百度的ECharts,还有阿里Antv的 G2、G6、F2等。往上一层是各个知名公司开源的可视化框架,如Airbnb的 S
6、uperset, Redash, Metabase等等。这些框架一般能够满足从数据源接入,自 助制作报表和报表整理展示的功能,接入起来更加方便。再往上一层就是商用 的可视化软件,如国外的Tableau, Qlik ,国内的FineReport,永洪BI等 等。这种软件需要付费,但都具备更丰富的可视化功能并提供一些技术支持, 对于那些没有精力折腾可视化的公司会是个不错的选择。4. 1图表库理解整个图表开源生态,我们得先了解下SVG和Canvas这两个浏览器提 供的原生能力。SVG全称叫可缩放矢量图,跟HTML 一样,有自己的命名空间, 使用XML标签来绘图。而Canvas是HTML5中的新标签,
7、用于客户端的图形 绘制,有一个基于Java的绘图APIoD3. js 全称是 Data-DrivenDocuments,支持 SVG 和 Canvaso 相对于其他 产品,它更偏底层,并没有对图表进行归类。开发者可以通过D3丰富的类库 来方便的操作D0M,绘制任何想绘制的图形,以增加开发复杂度的代价,覆盖更加全面的可视化场景。Visual IndexBox PlotsBox PlotsBubble ChartBullet ChartsCalendar ViewNon-contiguousCartogramChord DiagramDendrogramSunburstPopulationStac
8、ked BarsForce-DirectedGraphNode-Link Tree而国外的HighCharts是基于SVG开发的图表库,ECharts和G2那么均基于Canvaso ECharts有完整的图表封装,开箱即用,而G2那么是一套基于可视 化编码的图形语法,以数据驱动,具有高度的易用性和扩展性。阿里后续基于G2 又往上封装了一套基于React的图表库Bizcharts,主打电商业务图表可视化, 沉淀电商业务线的可视化规范。在React工程中实现常见图表和自定义图表。ECharts和G2的比照可借用EChart s作者的一句话,G2是面粉,ECharts是面条,皆微小但美好。折H而曲柱
9、状8B tS.V 8EK线冕爹)达图4 熬力图地理坐标/地图GEO/MapA Hiking Trail in Hangzhou - Baid.Binrung on MapPopulation Density of HongKong .Theme:waHexagonal BmntngBus Unes of Bjmg - Une EffectDraw Polygon on MapUse lines to draw 1 milion ny str.USA Population Estimates (2012)Air Quality - Baxju MapPnces and Earmngs 2012关
10、于G2条彩期 tMfflASIRB影BB妙彤IB的力那B4Ba.)炬形刷筋O MBS)微信一号:ourStorieAPI文档 使用戟相 AntV*SMS注X*示信 X折线图xiena件使用微信号:。口了;we4.2可视化框架这里主要介绍下业内比拟知名的Superset和Metabase。前者的方案更加 完善,支持集合不同数据源形成对应的指标,再通过丰富的图表类型进行可视 化。在时间序列分析上比拟出色,支持移动平均及周期偏移等分析方法。同时 与Druid深度集成,可以快速解析大规模数据集。劣势那么是不支持分组管理报 表,一旦报表多了使用起来很麻烦。且不提供图表下钻及联动功能,权限管理也不够友好。
11、First SectionTime Series TableWord CloudBubble ChartBirth Names DashboardPivot Table1.11M-22.5% over 5YMarkupTreemapCalendar HeatmapSeparatorBullet Chart1.11M-22.5% over 5Y ABig Number with Trendline80.7M咸信百ig 9、Metabase那么比拟注重非技术人员(如产品经理和运营人员)的使用体验,让他们能自由地探索数据,回答自己的问题,界面相对来讲更加美观。在权限 管理上做得较为完善,甚至无需账号
12、也可以对外共享图表和数据内容。 Dashboard支持分类,便于管理报表。劣势在时间序列分析上不支持不同日期 比照,还需要自定义SQL实现。每次查询仅能针对一个数据库查询,操作比拟 繁琐。Dnb(rd*.Que&UoAsData ReferenceMontnand Ye*3Average review rating17,624Total ordersOrders by erf week61.122Average order totX在数据挖掘这块,目前主要集中在商用公司这块,通过和某些行业深度合作,从而训练和深化自己的学习模型,这里不多赘述。5.什么是数据中台(全面解读数据中台)伴随着云计算、
13、大数据、人工智能等IT技术迅速开展及与传统行业实现快速融合,一场由数字化和智能化转型带来的产业变革正在孕育。随着企业规模不断扩大、业务多元化一一中台服务架构的应运而生。“中台“早期是由美军的作战体系演化而来的,技术上说的“中台”主要是指学习这种高效、灵活和强大的指挥作战体系。阿里在今年发布“双中台+ET”数字化转型方法论,“双中台”指的是数字中台和业务中台。5.1 数据中台是什么数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务跟企业的业务有 较强的关联性,是
14、这个企业独有的且能复用的,它是企业业务和数据的沉淀, 其不仅能降低重复建设、减少烟囱式协作的本钱,也是差异化竞争优势所在。广义的数据中台包括了数据技术,比方对海量数据进行采集、计算、存储、 加工的一系列技术集合,今天谈到的数据中台包括数据模型,算法服务,数据 产品,数据管理等等,和企业的业务有较强的关联性,是企业独有的且能复用 的,比方企业自建的2000个基础模型,300个融合模型,5万个标签。它是企 业业务和数据的沉淀,其不仅能降低重复建设,减少烟囱式协作的本钱,也是 差异化竞争优势所在。5.2 建立数据中台的原因数据中台和业务中台相比,面临的情况可能会更加复杂一点。建立数据中 台的原因:大
15、数据可以告诉决策者一些潜在的规律,以数据来证明或判断决策。以往 我们会用数据来证明我们的决策对错,现在我们用数据来引导我们做出对的决 策。在大数据时代,样本就是全体,大数据可以防止伪造和偏差。数据催生人工智能。数据是人工智能的根基,并且可以进行融合形成新的 数据。数据给我们无限的创新,让我们不停去尝试。数据是机器人的指令,我们形成数据服务思维。数据是不断变化的,让机 器智能成为决策环节,运营就可以智能化。中台的目标是提升效能、数据化运营、更好支持业务开展和创新,是多领 域、多BU、多系统的负责协同。中台是平台化的自然演进,这种演进带来“去 中心化”的组织模式,突出对能力复用、协调控制的能力,以
16、及业务创新的差异化构建能力。为什么数据中台如此重要呢,大致有以下四个原因:1、回归服务的本质-数据重用浙江移动已经将2000个基础模型作为所有数据服务开发的基础,这些基础 模型做到了 “书同文,车同轨”,无论应用的数据模型有多复杂,总是能溯源 到2000张基础表,这奠定了数据核对和认知的基础,最大程度的防止了 “重复 数据抽取和维护带来的本钱浪费。”曾经企业的数据抽取就有多份,报表一份,数据仓库一份,地市集市一份, 无论是抽取压力、维护难度及数据一致性要求都很高。同时,统一的基础模型 将相关业务领域的数据做了很好的汇聚,解决了数据互通的诉求,这点的意义 巨大,谁都知道数据1+12的意思。2、数
17、据中台需要不断的业务滋养在企业内,无论是专题、报表或取数,当前基本是烟囱式数据生产模式或 者是工程制建设方式,必然导致数据知识得不到沉淀和持续开展,从而造成模 型不能真正成为可重用的组件,无法支撑数据分析的快速响应和创新。其实, 业务最不需要的就是模型的稳定,一个数据模型如果一味追求稳定不变,一定 程度就是故步自封,这样的做法必然导致其他的新的类似的数据模型产生。数据模型不需要“稳定”,而需要不断的滋养,只有在滋养中才能从最初 的字段单一到逐渐成长为企业最为珍贵的模型资产。以报表为例,企业报表成千上万的原因往往也是没有沉淀造成的,针对一 个业务报表,由于不同的业务人员提出的角度不同,会幻化出成
18、百上千的报表, 如果有报表中台的概念,就可以提出一些基准报表的原那么,比方一个业务一张 报表,已经有的业务报表只允许修改而不允许新增,自然老报表就会由于新的 需求而不断完善,从而能演化成企业的基础报表目录,否那么就是一堆报表的堆 砌,后续的数据一致性问题层出不穷,管理本钱急剧增加,人力投入越来越多, 这样的事情在每个企业都在发生。3、数据中台是培育业务创新的土壤企业的数据创新一定要站在巨人的肩膀上,即从数据中台开始,不能总是 从基础做起,数据中台是数据创新效率的保障。研究过机器学习的都知道,没 有好的规整数据,数据准备的过程极其冗长,这也是数据仓库模型的一个核心 价值所在,比方运营商中要获取3
19、个月的ARPU数据,如果没有融合模型的支撑, 得自己从账单一层层汇总及关联,速度可想而知。在如今的互联网时代,企业都在全力谋求转型,转型的关键是要具备跟互 联网公司一样的快速创新能力,大数据是其中一个核心驱动力,但拥有大数据 还是不够的,数据中台的能力往往最终决定速度,拥有速度意味着试错本钱很 低,意味着可以再来一次。4、数据中台是人才成长的摇篮原来新员工入职要获得成长,一是靠人带,二是找人问,三是自己登陆各 种系统去看源代码,这样的学习比拟支离破碎,其实很难了解全貌,无法知道 什么东西对于企业是最重要的,获得的文档资料也往往也是过了时的。现在有了数据中台,很多成长问题就能解决,有了基础模型,
20、新人可以系 统的学习企业有哪些基本数据能力,0域数据的增加更是让其有更广阔的视野, 有了融合模型,新人可以知道有哪些主题域,从主题域切入去全局的理解公司 的业务概念,有了标签库,新人可以获得前人的所有智慧结晶,有了数据管理 平台,新人能清晰的追溯数据、标签和应用的来龙去脉,所有的知识都是在线 的,最新的,意味着新人的高起点。目录1 .数据采集传输31.1 1 Flume 和 Logstash41.2 日志采集如何工作51.3 数据传输Kafka6.数据存储72. 1HDFS73. 2HBase74. 3Hive 和Pig85. 4MapReduce86. 5其他辅助工具9.数据计算&查询93.
21、 1批计算和流计算94. 2 Spark 和 Flink95. 3数据查询10.数据可视化及分析124. 1图表库125. 2可视化框架14.什么是数据中台(全面解读数据中台)164.1 数据中台是什么164.2 建立数据中台的原因17归服务的本质-数据重用182、数据中台需要不断的业务滋养183、数据中台是培育业务创新的土壤194、数据中台是人才成长的摇篮19.微服务架构-数据中台和业务中台21更为关键的是,数据中台让新人摆脱了在起步阶段对于导师的过渡依赖, 能快速的融入团队,在前人的基础上进行创新。数据中台天然的统一,集成的 特性,有可能让新人打破点线的束缚,快速构筑起自己的知识体系,成为
22、企业 数据领域的专家。当然,数据中台的建立不是一蹴而就的,每个企业都应该基于实际打造独 有的中台能力,在这个过程中,需要遵循一些原那么:首先,企业的组织架构及机制需要顺势而变。比方以前负责数据的部门或 团队往往缺乏话语权,面对业务需求往往是被动的接受的角色,这让一切数据 中台的想法化为泡影,需要为数据中台团队授权。其次,要改变工作方式。现在很多企业的数据团队的主要工作内容就是项 目管理、需求管理等等,当一个工程完成后又投入到下一个工程,做好一个需 求后又开始负责下一个需求,这样的工作确实非常锻炼人的组织、协调能力, 但这样能力的提升与工作时间的长短并不是呈线性增长的,虽然增加了工程和 需求管理
23、经验,但并不能在某一个专业领域得到知识和经验的沉淀,随着时间 的流逝,越来越多的人会失去最初的工作积极性和创造性,事实上,数据人员 只有深入的研究业务、数据和模型,端到端的去实践,打造出数据中台,才是 最大的价值创造,才能使得持续创新成为可能。第三,数据中台的团队要从传统的支撑角色逐步向运营角色转变。不仅在 数据上,在业务上也要努力赶超业务人员,中台人员要逐步建立起对于业务的 话语权,不仅仅是接受需求的角色,更要能提出合理的建议,能为业务带来新的增长点,比方精确营销。最后,中台是适合公司特点的。最合适的中台是当你深入了解业务、产品、系统、组织,而且不仅了解今天在哪里,还要了解过去是怎么演变而来
24、,未来又会怎么演化。只有当了解所有的东西之后,才能做出较好的中台架构设计。6.微服务架构-数据中台和业务中台业务中台业务中台月照满用OLTP 蛔OLAPrRestful APIS民芬诺S数据同步数据中台首先我们看下阿里巴巴Aliware团队对企业中台的定义。即企业中台是由 业务中台和数据中台构建起数据闭环的运营体系,实现以数字化资产的形态构 建企业核心差异化竞争力。在原来我谈企业中台的时候,很少专门谈到数据中台和业务中台,更多谈 的是技术中台和业务中台,技术中台类似我们原来说的技术平台层和业务不相 关。而对于业务中台,其中包括了以数据能力提供为主的微服务模块组件,也 包括了业务规那么处理为主的
25、组件,还包括了各种能力组合组装的能力组件。在原来自己的概念里面,是将以数据能力提供为主的组件仍然是业务中台 里面的数据中台,类似人员中心,用户中心,产品中心等。而对于业务处理为 主模块类似计费中心,结算中心等做为业务中台模块。但是这个概念本身和阿 里的概念有出入。因此今天专门找资料看了下,阿里谈到的数据中台更多的是指数据中心平台建设,其中包括了传统的0DS库,也包括了上层的数据仓库, 这个数据中心也可以上升到大数据平台。比方一个企业构建的大数据平台,可 以划归到数据中台。一个企业构建的ODS共享数据中心,可以划归到数据中台。数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工, 同时
26、统一标准和口径。数据中台把数据统一之后,会形成标准数据,再进行存 储,形成大数据资产层,进而为客户提供高效服务。这些服务跟企业的业务有 较强的关联性,是这个企业独有的且能复用的,它是企业业务和数据的沉淀, 其不仅能降低重复建设、减少烟囱式协作的本钱,也是差异化竞争优势所在。数据中台建设的基础还是数据仓库和数据中心,并且在数仓模型的设计上 也是一脉传承,之所以我们现在处处推崇数据中台建设及应用,一个是因为数 据中台确实有过人之处,另一个是这套模型在阿里表达了巨大的应用价值。数 据中台一般包括了数据模型和数据资产管理,数据服务开放,上层的数据类应 用和标签管理等。从构成上数据中台一般包括以下几个局
27、部的内容。1 .数据仓库:用来存储数据的,结构性数据、非结构性数据等,还有离线 数据和实时数据等;2 .大数据中间件:包含了大数据计算服务、大数据研发套件、数据分析及 展现工具;3 .数据资产管理:按照阿里的体系应该分为垂直数据、公共数据和萃取数 据3层;从这个内容一看,更加明确了阿里谈到的数据中台就是一个数据共享能力 提供中心。在前期可以是一个基于大数据技术构建的分布式ODS库,在后期可以开展到数据仓库和大数据分析。底层的核心仍然是数据建模。当我们把这个概念搞清楚后,我们才基本清楚了企业一个开始建设企业中 台,如果仅仅是满足业务流程和业务处理需求,只会涉及到业务中台构建。在 业务中台构建完成
28、后,考虑到后续端到端流程监控分析,大数据分析的需求才 会涉及到数据中台的构建。当然数据中台本身也为上层应用提供各种数据服务能力,比方上层的针对 性营销,用户画像和标签化,这个就不属业务中台能够提供的能力,而是需要 数据中台来提供这个能力。只有数据中台对用户相关的所有静态数据,动态行 为数据进行了集中,也进行了关联分析和建模。其次你会发现,当你在构建上层业务应用的时候,如果需要的不仅仅是传 统业务中台的单个业务模块提供的单数据对象数据服务能力,而更多的是需要 提供跨多个业务组件提供的整合后的数据能力,那么这件事情也应该是数据中 台来做最合适。因为这个职责本身也不在业务中台。因此数据中台是多个共享
29、数据对象的汇总和集合,能够提供跨业务中台多 组件的共享数据服务提供能力。正因为具备这个能力,你会发现当你构建上层 一个分析类应用前台的时候,原来需要和业务中台多个业务组件打交道,同时 自己还需要进行数据整合清理。但是新架构下你只需要消费和使用数据中台提供的共享数据服务能力即可。近来数据中台概念大火,大家对它的定义也五花八门,不一而足。但无论怎么定义,一个完善的数据技术架构必不可少。了解这些架构里每个局部的位 置,功能和含义,不仅能让我们更好了解数据产品的范围和边界,知道技术能 帮我们实现什么,能怎么实现得更好,另一方面,很多技术的设计理念对我们 认知世界,了解复杂系统也会有所裨益。因此这篇文章
30、旨在梳理市面上常见的 开源技术方案,背后原理及应用场景,帮助产品经理对大数据技术体系有个大 致全面的了解。一般来说,我们将数据整个链条区分为四个环节,从数据采集传输,到数 据存储,再到数据计算&查询,到后续的数据可视化及分析。框架图如下:数据展示及分析图表控件HighCharts/Echarts可视化框架Superset/Metabae可视化软件Tableau/Qlik数据挖掘机器学习任务调度管理数据计算&查询Hive使用MR/类SQLSpark快速/内存计算/批流Kylin多维/Cube预计算Presto内存计算/列式Druid实时分析/列式资源管理资源管理数据存储ZooK eeperZoo
31、K eeperYarn集群管理HDFS分布式/Hadoop底层HBase列式存储/NoSQLMySQL应用广/单机/关系型TiDB单机分布混合式数据采集&传输SqoopRDBMS导入工具SqoopRDBMS导入工具Fulme分布式采集日志引擎LogstashELK技术栈采集引擎Filebeat 轻量级日志Kafka布式消息队列 ,:ourStone深E色局部为Hadoop生态成员1.数据采集传输这个一般对应于公司的日志平台,任务是将数据采集后缓存在某个地方,供后续的计算流程进行消费使用。针对不同的数据来源有各自的采集方式,从APP/服务器日志,到业务表,还有各种API接口及数据文件等等。其中因
32、为日志数据有数据量多,数据结构多样,产生环境复杂等特点,属于重点关照的对象。目前市面针对日志采 集的有 Flume, Logstash, Filebeat, Fluentd , rsyslog 几种常见的框架, 我们挑应用较广泛的前两者介绍下:1. 1 Flume 和 LogstashFlume是一款由Cloudera开发的实时采集日志引擎,主打高并发,高 速度,分布式海量日志采集。它是一种提供高可用、高可靠、分布式海量日 志采集、聚合和传输的系统。Flume支持在日志系统中定制各类数据进行发 送,用于采集数据;同时,它支持对数据进行简单处理,并写到各种数据接 收方。目前有两个版本,0G和NG
33、,特点主要是:侧重数据传输,有内部机制确保不会丢数据,用于重要日志场景由java开发,没有丰富的插件,主要靠二次开发配置繁琐,对外暴露监控端口有数据Web ServerChannelLogstash是Elastic, co旗下的一个开源数据收集引擎,可动态的统一不 同的数据源的数据至目的地,搭配ElasticSearch进行分析,Kibana进行页 面展示,是著名的ELK技术栈中的L局部。特点主要是:内部没有一个persist queue,异常情况可能会丧失局部数据由ruby编写,需要ruby环境,插件很多 配置简单,偏重数据前期处理,分析方便AnalysisArchivingAlerting
34、二:微信号:ourSconeMonitoring从两者的设计思想来看,Flume最初并不是为了采集日志而设计,而是定 位在把数据传入HDFS中,这和Logstash有根本的区别。所以它理所应当侧 重于数据的传输和安全,且需要更多的二次开发和配置工作。而Logstash明 显侧重先对日志数据进行预处理,为后续的解析做铺垫。它搭配ELK技术栈使 用起来比拟简单,更像是为你准备好的便当,开盒即食。1.2日志采集如何工作我们以Flume为例子讲些日志采集Agent是怎么工作的。Flume由三个局部组成:Source, Channel和Sink,对应于采集,缓存和 保存三个环节。其中,Source组件用
35、来采集各种类型的数据源,如directory kafka 等。Channel 组件用来缓存数据,有 memory channel, JDBC channel 和 kafka channel三种。最后再通过Sink组件进行保存,分别支持HDFS, HBase, Hive 和Ka珠a四种存储方式。下面结合一个大数据实时处理系统阐述下Flume在实际应用中所扮演的重要角色。该实时处理系统整体架构如下:通过将Agent部署在Web服务器,一旦发生新增的日志数据,就会被Flume程序监听到,并且最终会传输到Kafka的Topic中,再进行后续的一系列操作。.redis做信号:ourStone1 . 3数
36、据传输KafkaKafka最初是由领英开发,并随后于2011年初开源,并于2012年10月23日由Apache Incubato孵化出站。该工程的目标是为处理实时数据提供 一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事 务日志架构的大规模发布/订阅消息队列”,这使它作为企业级基础设施来处理 流式数据非常有价值。KafkaStreamsKSQLKafka ConsumerElkafkaKafka ConnectSource.数据存储数据库存储方面,有单机/分布式、关系型/非关系型、列式存储/行式存储 三个维度的划分,各种维度交叉下都有对应产品来解决某个场景下的需求。在数据量
37、较小的情况下,一般采取单机数据库,如应用非常广泛,技术成 熟的MySQLo数据量大到一定程度后,就必须采取分布式系统了。目前业界最 知名的就是Apache基金会名下的Hadoop系统,它基本可以作为大数据时代 存储计算的经典模型。胆恒叫EJ疆fir=Ia都 kafka3mne1 HDFSHDFS作为Hadoop里的分布式文件系统,为HBase和Hive们提供了高 可靠性的底层存储支持,对应于Google GFS的开源实现。一般也会用于一些 批次分析的场景。1.2 HBaseHBase是Hadoop数据库,作为基于列的非关系型数据库运行在HDFS上。它具备HDFS缺乏的随机读写能力,因此比拟适合
38、实时分析。HBase以GoogleBigTable为蓝本,以Key-Value形式存储,能快速在主机内数十亿行数据中定位所需的数据并访问它。1.3 Hive 和 PigHive和Pig都是集成在Hadoop顶层的查询语言,提供静态数据的动态 查询,支持类SQL语言,底层经过编译转为MapReduce程序,省去了自己编 写MR程序的繁琐。区别是Hive SQL是类SQL的查询语言,要求数据存储于 表中,而Pig是面向数据流的一个程序语言,常用于开发简洁的脚本来转换数 据流从而嵌入到较大的应用程序中。2 . 4 MapReduceMR开创了分布时代计算的先河,使得大批量数据处理成为可能。简单来讲,
39、 就是将比拟庞大的计算任务先分组,再汇总,提高计算效率。举例来讲,如果 你新家需要装修,要在不同地方购置很多东西。你一个人(单机)去买估计得 花十天。现在叫了一堆小伙伴(分布式),每个人负责去一个地方买东西(Map),最后再拿到家里分类汇总(Reduce), 一天就搞定了。正it七微信号:ourStorie最后再拿到家里分类汇总(Reduce), 一天就搞定了。正it七微信号:ourStorie2.5其他辅助工具上图中的其他工具是为了保证整个大数据计算存储系统更加健壮和开放, 如Zookeeper提供了稳定服务和failover机制,Sqoop那么为Hadoop提供了 方便的RDBMS(关系型
40、数据库)数据导入功能,使得传统数据库数据向HBase中 迁移变的非常方便。值得一提的是,Hadoop生态其实是建立在Google 2003年发表的三大论 文的基础之上。可能是当时Google有意改善业内落后的现状,让大家稍微跟 得上他的脚步才发布的论文这么多年过去了,不知道Google内部对数据的 理解和使用又到了什么样的高度。3 .数据计算也查询批计算和流计算大数据处理场景可分为批处理和流处理两个,分别对应离线分析和实时分 析。常见框架分类有:仅批处理框架:Hadoop MapReduce仅流处理框架:Storm, Samza混合框架:Spark, Flink篇幅所限,除了上文已经提到的Hadoop生态外,我们再简单科普下Spark:3.1 Spark 和 FlinkApache Spark是一种包含流处理能力的下一代批处理框架。批处理模式下,Spark与MapReduce不同,它将数据处理工作全部在内存 中进行,计算性能大幅改善。流处理模式下,Spark主要通过Spark Streaming实现了 一种叫做微批(Micro-batch)的概念。该技术可以将数据流视作一系列