大数据平台架构技术选型与场景运用_第1页
大数据平台架构技术选型与场景运用_第2页
大数据平台架构技术选型与场景运用_第3页
大数据平台架构技术选型与场景运用_第4页
大数据平台架构技术选型与场景运用_第5页
全文预览已结束

下载本文档

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

文档简介

1、大数据平台架构技术选型与场景运用导读:本文将大数据的工作角色分为三种类型,包括业务相关、数据科学相关和数据工 程。大数据平台偏向于工程方面,大数据平台一般包括数据源、数据采集、数据存储、数据 分析等方面。讲师从数据来源、数据源结构、数据变化程度和数据规模等4个维度对数据源进行分 类,数据源分类维度的不同决定最后的技术选型。讲师还对数据源分类的定义及选型方式进 行详细讲解,最终联系到大数据的应用场景,让数据应用方式更加直观。一、大数据平台大数据在工作中的应用有三种:与业务相关,比如用户画像、风险控制等;与决策相关,数据科学的领域,了解统计学、算法,这是数据科学家的范畴;与工程相关,如何实施、如何

2、实现、解决什么业务问题,这是数据工程师的工作。数据工程师在业务和数据科学家之间搭建起实践的桥梁。本文要分享的大数据平台架构 技术选型及场景运用偏向于工程方面。大数据平台第一个要素就是数据源,我们要处理的数据源往往是在业务系统上,数据分 析的时候可能不会直接对业务的数据源进行处理,而是先经过数据采集、数据存储,之后才 是数据分析和数据处理。从整个大的生态圈可以看出,要完成数据工程需要大量的资源;数据量很大需要集群; 要控制和协调这些资源需要监控和协调分派;面对大规模的数据怎样部署更方便更容易;还 牵扯到日志、安全、还可能要和云端结合起来,这些都是大数据圈的边缘,同样都很重要。二数据源的特点数据源

3、的特点决定数据采集与数据存储的技术选型我根据数据源的特点将其分为四大 类:第一类:从来源来看分为内部数据和外部数据;第二类:从结构来看分为非结构化数据和结构化数据;第三类:从可变性来看分为不可变可添加数据和可修改删除数据;第四类,从规模来看分为大量数据和小量数据。内部数据来自企业内部系统,可以采用主动写入技术(push),从而保证变更数据及时被采集。外部数据企业要做大数据的话肯定不会只局限于企业内部的数据,比如银行做征信,就不能只看银行系统里的交易数据和用户信息,还要到互联网上去拉取外部数据。外部数据分为两类:一类是要获取的外部数据本身提供API,可以调用API获取,比如微信;另一类是数据本身

4、不提供API,需要通过爬虫爬取过来。这两类数据都不是我们可控制的,需要我们去获得,它的结构也可能跟我们企业内部数 据的结构不一样,还需要进行转换,爬虫爬取的数据结构更乱,因此大数据平台里需要做ETL,由ETL进行数据提取、转换、加载,清洗、去重、去噪,这个过程比较麻烦。爬虫爬过来的数据往往是非结构性的、文档型的数据,还有视频、音频,这就更麻烦了。结构化数据& m瞄构化数据结构化和非结构化数据在存储时的选型完全不同,非结构化数据偏向于文件,或者选择NoSQL数据库;考虑到事务的一致性,我们也可能选择传统的数据库不变可添加数据如果数据源的数据是不变的,或者只允许添加(通常,数据分析的事实表,例如银

5、行交 易记录等都不允许修改或删除),则采集会变得非常容易,同步时只需要考虑最简单的增量 同步策略,维持数据的一致性也相对变得容易。对于大数据分析来说,我们每天在处理的数据大部分是不可变更的。正如Datomic数 据库的设计哲学就是数据为事实(fact),它是不可变的,即数据是曾经发生的事实,事实 是不可以被篡改的,哪怕改一个地址,从设计的角度来说也不是改动一个地址,而是新增了 一个地址。交易也是如此。可修改可删除数据银行的交易记录、保险单的交易记录,互联网的访客访问记录、下单记录等都是不可变 的。但是数据源的数据有些可能会修改或删除,尤其是许多维表经常需要变动。要对这样的 数据进行分析处理,最

6、简单的办法就是采用直连形式,但直连可能会影响数据分析的效率与 性能,且多数数据模型与结构可能不符合业务人员进行数据分析的业务诉求。如果采用数据 采集的方式,就要考虑同步问题。大数据量针对大数据量,如果属于高延迟的业务,可以采用batch的处理方式,实时分析则需 要使用流式处理,将两者结合就是Lambda架构,即有实时处理、又能满足一定的大数据 量,这是现在比较流行的大数据处理方式。三数据存储的技术选型大数据平台特征:相同的业务数据会以多种不同的表现形式,存储在不同类型的数据库 中,形成一种poly-db的数据冗余生态。先把数据源进行分类,然后根据其特点判断用什么方式采集,采集之后要进行存储。数

7、 据存储的技术选型依据有三点:第一点取决于数据源的类型和采集方式。比如非结构化的数据不可能拿一个关系数据库 去存储。采集方式如果是流失处理,那么传过来放到Kafka是最好的方式。第二点取决于采集之后数据的格式和规模。比如数据格式是文档型的,能选的存储方式 就是文档型数据库,例如MongoDB ;采集后的数据是结构化的,则可以考虑关系型数据 库;如果数据量达到很大规模,首选放到HDFS里。第三点是分析数据的应用场景。根据数据的应用场景来判定存储技术选型。场景一:舆情分析做舆情分析的时候客户要求所有数据存放两年,一天600多万,两年就是700多天x 600多万,几十亿的数据。而且爬虫爬过来的数据是

8、舆情,做了分词之后得到的可能是大段 的网友评论,客户要求对舆情进行查询,做全文本搜索,并要求响应时间控制在10s以内。我们后来选择用ES ,在单机上做了一个简单的测试,大概三亿多条数据,用最坏的查 询条件进行搜索,保证这个搜索是全表搜索(基于Lucence创建了索引,使得这种搜索更 高效),整个查询时间能控制在几秒以内。如图所示,爬虫将数据爬到Kafka里,在里面做流处理,去重去噪做语音分析,写到 ElasticSearch里。我们做大数据的一个特点是多数据库,会根据不同的场景选择不同的数 据库,所以会产生大量的冗余。场景二:商业智能产品BI产品主要针对数据集进行的数据分析以聚合运算为主,比如

9、求合、求平均数、求同 比、求环比、求其他的平方差或之类的标准方差。我们既要满足大数据量的水平可伸缩,又 要满足高性能的聚合运算。选择Parquet列式存储,可以同时满足这两个需求。场景三:Airbnb的大数据平台Airbnb的大数据来自两块:一是本身的业务数据,二是大量的事件。数据源不同,采 集方式也不一样。日志数据通过发送Kafka事件,而线上数据则通过Sqoop同步。数据存 储选择HDFS集群,然后通过Presto对Hive表执行即席查询。S3是一个独立的存储系统。四、数据处理数据处理分为三大类:第一类是从业务的角度,细分为查询检索、数据挖掘、统计分析、深度分析,其中深度 分析分为机器学习

10、和神经网络。第二类是从技术的角度,细分为Batch、SQL、流式处理、machine learning、Deep learning。第三类是编程模型,细分为离线编程模型、内存编程模型、实时编程模型。结合前文讲述的数据源特点、分类、采集方式、存储选型、数据分析、数据处理,我在 这里给出一个总体的大数据平台的架构。值得注意的是,架构图中去掉了监控、资源协调、 安全日志等。左侧是数据源,有实时流的数据(可能是结构化、非结构化,但其特点是实时的),有 离线数据离线数据一般采用的多为ETL的工具,常见的做法是在大数据平台里使用Sqoop 或Flume去同步数据,或调一些NIO的框架去读取加载,然后写到HDFS里面,当然也有 一些特别的技术存储的类型,比如HAWQ就是一个支持分布式、支持事务一致性的开源数 据库。从业务场景来看如果我们做统计分析就可以使用SQL或MapReduce或stre

温馨提示

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

评论

0/150

提交评论