大数据概念性总结
作者:互联网
大数据概念性总结
一、大数据应用开发总指导
1.大数据主流技术和企业级大数据解决方案
1.1大数据历史
-
信息化浪潮
-
第一次:计算机 1980 信息处理
-
第二次:互联网 1995 信息处理
-
第三次:物联网、云计算、大数据 2010 信息爆炸
-
-
大数据的概念
-
大数据指利用常用软件工具捕获、管理和处理数据所耗时间超过可容忍时间的数据集。
-
Volume(体量巨大)、Velocity(处理速度快)、Variety(类型繁多、多样化)、(Value)价值密度低
-
-
三驾马车
-
谷歌的三篇论文:
-
分布式文件系统GFS
-
对数据进行分布式文件系统存储,解决大数据存储问题
-
-
大数据分布式计算框架MapReduce
-
核心思想,大事化小处理,最后合并结果,先拆分再合并
-
-
分布式数据库系统BigTable
-
分布式数据库将数据存储在一张大表中,牺牲存储空间换取性能
-
-
-
1.2大数据技术演变
-
由于MapReduce编程繁琐,Facebook共享Hive,sql语法作为数据分析、挖掘提供巨大帮助。第一个运行Hadoop的商业公司Cloudera在2008年成立。
-
由于2014年spark逐渐替代Mapreduce地位,Spark内存运行比MapReduce运算速度快100倍,而且它的运行方式适合机器学习。
-
Spark和MapReduce专注离线计算,通常几十分钟甚至更长。由于实时计算需求,六十计算引擎开始出现,包括Storm、Flink、SparkStreaming
1.3大数据主流技术
-
所谓大数据技术就是,数据采集、存储、处理和分析的相关技术
-
大数据主流技术-数据采集
-
Flume:可以进行流式日志数据的收集
-
Sqoop:可以交互关系型数据库,进行导入导出数据
-
爬虫技术:可以爬取海量网页数据
大数据主流技术-数据存储与管理
-
大数据利用分布式文件系统HDFS、HBase、Hive,实现对结构化、半结构化和非结构化数据的存储和管理。
-
HDFS:Hadoop里面做存储的是HDFS
-
大数据主流技术-数据处理与分析
-
利用分布式并行编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析。
-
Hadoop里面书要是MapReduce,Spark里面的Spark Streaming
-
对分析结果进行可视化呈现,帮助人们更好理解数据、分析数据
-
1.4大数据应用
-
大数据应用
-
金融:高频交易、市场舆情分析,信贷风险分析等
-
物流:智慧物流,包括成本控制、风险管理等
-
医疗:流行病预测,智慧医疗,健康管理等
-
互联网:用户画像,个性化推荐,广告投放等
-
城市:智慧交通,城市规划,智能安防等
-
-
谷歌最近开发一个研究程式显示,AI借助这个程式可以系统分析病患的医疗记录,然后在病患就医24小时内算出病人的死亡时间。准确率高大%95
1.5场景化解决方案的分类
-
不同场景根据不同解决方案如:
-
离线批处理
-
实时检索
-
实时流处理
-
融合数仓
-
1.5.1离线批处理
-
离线批处理特点
-
处理时间要求不高
-
处理数据量大
-
处理数据格式多样
-
占用计算存储资源多
-
-
离线批处理流程图
-
数据源:包括流式数据(Socket流,OGG日志流、日志文件),批量文件数据、数据库等。
-
批量采集:
-
Flume:采集数据文件日志文件。
-
Sqoop:采集数据库数据。
-
第三方采集/ETL工具:第三方数据采集、加载、处理工具
-
离线批处理引擎:实现高性能的离线批处理作业运行
-
-
-
离线批处理场景化实战
-
Hive:传统SQL批处理引擎,用于处理SQL类批处理作业,使用官方海量数据下表现稳定,但处理速度较慢。
-
MapReduce:传统批处理引擎,用于处理非SQL类,尤其是数据挖掘和机器学习类批处理作业,使用广泛,海量数据下表现稳定,但是处理速度较慢
-
SparkSQL:新型SQL批处理引擎,用于处理SQL类批处理作业,适合海量数据,处理速度高效;
-
Spark:信心批处理引擎,用于处理非SQL类,尤其是数据挖掘和机器学习类批处理作业,适合海量数据,处理速度高效;
-
Yarn:资源调度引擎,为各种批处理引擎提供资源调度能力,是多租户资源分配的基础;
-
HDFS:分布式文件系统,为各种批处理引擎提供数据,可以存储各种文件格式数据
-
批处理优先使用Spark、SparkSQL,有存量应用时可以使用MapReduce/Hive,两种批处理模式可以同时使用
-
业务应用:查询并使用批处理结果的业务应用,由ISV开发
-
开发类ISV指的是基于平台能力,为平台应用客户,提供自己开发的软件服务的开发商。再细分又可分为两类:标准化应用ISV和个性化应用ISV
-
-
1.5.2实时检索概念
-
实时检索简单说就是对系统内的一些信息根据关键词进行即时、快速搜索,实现即搜即得的效果,强调的时实时低延迟。
-
补充OLTP单次查询返回数量小,但是经常会涉及服务器端简单的聚合操作,要求查询响应速度快,一般应用于在线处理;
-
OLTP:联机事务处理过程(OLTP),也被叫面向交易的处理过程,其基本特征时前台接受的数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
-
-
1.5.2.1实时检索的核心诉求
-
检索性能要求高
-
基于主键的检索需要在1秒内响应,基于非主键的检索需要在3秒内响应,不承担复杂查询和统计类查询
-
-
高并发查询
-
通常拥有大于100的并发查询
-
-
数据量大
-
PB级数据量,集群规模在1000节点以上,对于图数据库的场景,点个数在10亿以上,边个数在100亿以上
-
-
支持结构化和非结构化
-
需要同时保存结构化数据和非结构化数据,经常用来对图片等小文件进行检索
-
-
高效的数据加载
-
数据加载要求高,每小时可以加载TB级数据
-
-
支持图检索
-
支持检索图数据,支持图标准查询接口
-
1.5.2.2实时检索图
-
实时检索引擎:用于实现高性能的实时检索,如:;HBase+ES+GraphBase
-
HBase:NoSql型数据库,基于主键(Key-Value)检索,查询条件简单,主要通过主键进行查询。
-
ES(ElasticSearch):用于全文检索或者当作HBase存储的非主键索引。ElasticSearch也可以既存储数据又存索引,但是由于性价比低,只适合小规模局点。
-
GraphBase:基于Hadoop生态的图数据库,底层数据存储在HBase和ElasticSearch中,支持用户对图数据的快速检索。
-
其中(ElasticSearch+HBase):适合快速检索,根据指定条件查询结果,不适合统计(Group、Sum等)和复杂查询(Join、In、子查询等)
-
-
数据采集:
-
文件数据批量加载(Flume或者其他第三方加载工具)
-
流式数据通过实时加载(SparkStreaming或者其他第三方采集工具如Storm,Flink)写入数据。
-
图数据可以使用华为GraphBase的工具导入数据
-
-
数据源:数据源种类包括
-
文件数据(txt、csv等)和流式数据(Socket流、OGG日志流等)
-
-
业务应用:使用ElasticSearch和HBaseAPI、REST接口等开发的实时检索应用,由ISV开发。ISV使用图数据库的RESTful接口和Gremlin接口查询关系数据。
-
Gremlin:一种函数式数据流语言,可以使用户使用简介的方式表述复杂的属性图的遍历查询。每个Gremlin遍历由一系列步骤(可能存在嵌套)组成,每一步都在数据流(data stream)上执行一个原子擦欧总
-
RESTful接口:RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
-
左边两个时实时检索的可视化,右边一个是图数据库的可视化。
1.5.3实时流处理
-
概念
-
实时流处理,通常指对实时数据源进行快速分析,迅速触发下一步动作的场景。实时数据对分析处理速度要求极高,数据处理规模巨大,对CPU和内存要求很高,但是数据通常不落地,对数据量要求不高,通常通过StructuredStreaming或者Flink任务实现
-
Structured Streaming是Spark新提出的一种实时流的框架,以前是Spark Streaming。 Structured Streaming是Spark2.0版本提出的新的实时流框架(2.0和2.1是实验版本,从Spark2.2开始为稳定版本)
-
-
注意
-
数据源源不断到来;
-
数据需要尽快得到处理
-
不能产生积压,处理之后数据量依然很大,到TB甚至PB级别
-
处理结果能够尽快展现
-
-
1.5.3.1实时数据处理系统的诉求
-
处理速度快
-
端到端处理需要达到秒级,流处理平台负责的数据采集和数据处理要在1秒内完成。如果是风控项目要求单挑数据处理时间达到秒级,单节点TPS大于2000.
-
-
吞吐量高
-
需要在短时间内接受并处理大量数据记录,吞吐量需要达到数十兆/秒/节点。
-
-
抗震性强
-
为应对数据源端业务数据产生速度会突然出现峰值的情形,需要提供数据源缓存机制。
-
-
可靠性高
-
网络、软件等故障发生时,需要保证每条数据不丢失,数据不遗漏,不重复
-
-
水平扩展
-
当系统处理能力出现瓶颈后,可通过节点的水平扩展提升处理性能
-
-
多数据源支持
-
支持网络流、文件、数据库表、IOT等格式的数据源。对于文件数据源,可以处理增量数据的加载。
-
-
数据权限和资源隔离
-
消息处理、流处理需要数据权限控制,不同作业用户可以访问、处理不同的消息和数据。多种流处理应用之间要进行资源控制和隔离,防止发生资源争抢。
-
-
第三方工具对接
-
支持与第三方规则引擎、决策系统、实时推荐系统等对接。
-
1.5.3.2实时流处理数据流图
-
数据源
-
主要包含业务数据库以及Socket数据流和实时文件等
-
-
实时数据采集
-
用于实时采集数据源产生的数据,并将其写入分布式消息系统,采集的数据格式包括文件、数据库、网络数据流等。
-
Flume:Hadoop自带的采集工具,支持多种格式的数据源,包括日志文件、网络数据流等。
-
第三方采集工具:第三方专用实时数据采集工具,包括GoldenGate(数据库实时采集)、自开发采集程序(定制化采集工具)等。
-
-
分布式消息系统
-
kafka:支持消息的生产和发布,以及多种形式的消息缓存,满足高效可靠的消息生产和消费
-
-
分布式流计算引擎:对实时数据进行快速分析
-
Strctured Streaming:Structured Streaming是Spark新提出的一种实时流的框架,以前是Spark Streaming。 Structured Streaming是Spark2.0版本提出的新的实时流框架(2.0和2.1是实验版本,从Spark2.2开始为稳定版本)
-
Flink:新一代流处理引擎,支持毫秒级的流处理分析
-
-
数据缓存(可选):将流处理分析的结果进行缓存,满足处理应用的访问需求
-
Redis:提供高速key/value存储查询能力,用于流处理结果数据的高速缓存
-
1.5.4融合数仓
在数据慢慢呈现数据处理量大、数据处理时延低、数据处理格式多样的要求下,基于模块化存储的数据仓库重要性日益增加,但同时也带来了新的问题。
-
并行架构
-
大数据业务试点开展,各部门建立孤立的大数据平台,大数据平台之间,大数据平台与数仓之间缺乏互联互通和统一的规划
-
-
融和架构
-
大数据业务官方实施后,银行开始关注大数据平台与已有数仓平台的融合
-
基于数仓有复杂的数仓模型和大量分析应用,希望保留原有投资
-
Hadoop架构因为SQL支持、资源管理、生态等问题,不适合数仓业务
-
以数仓为核心,大数据平台作为数仓功能的延申,进行预处理和供数
-
-
数仓架构
-
ODS:Operational Data Store,操作性数据。是作为数据库到数据仓库的一种过渡, ODS的数据结构一般与数据来源保持一致
-
EDW:Enterprise Data Warehouse,企业数据仓库,保持这所有的从ODS到来的数据, 并长期保存,而且这些数据不会被修改
-
DM:Data Mart,数据集市,为了特定的应用目的或应用范围,而从数据仓库中独立出来 的一部分数据,也可称为部门数据或主题数据。最终面向应用
-
1.5.4.1融合数仓流图
-
数据源
-
数据源的种类包括流式数据(Socket流,OGG日志流、日志文件),批量文件数 据、数据库等。
-
-
数据采集系统:用于实时或批量采集数据,可能的形式包括:
-
实时采集:用于Socket流、数据库同步日志等的实时数据采集,以及实时采集数据文 件日志文件,常见的有Flume、 GoldenGate、流处理引擎等。
-
批量加载:从数据库或者数据文件定期批量加载数据,常见的有第三方ETL工具等。
-
-
数仓集市:分布式融合数据仓库和数据集市,用于实现高性能的离线处理和交互式查询。
-
GaussDB 200:分布式MPP架构数据仓库,支持在海量数据中,多个租户共享数据 的离线数据处理和在线交互查询。
-
-
业务应用:查询并使用数仓集市的业务应用,由ISV开发。
-
开发类ISV指的是基于平台能力,为平台应用客户,提供自己开发的软件服务的开发商。再细分又可分为两类:标准化应用ISV和个性化应用ISV
-
1.6大数据应用开发
-
怎样才能做好大数据应用开发?
-
编程
-
业务
-
-
大数据应用开发流程
-
技术选型:
-
数据采集传输:Flume,Kafka,Sqoop,Loader
-
数据存储:MySQL,Oracle,HDFS,HBase,Redis,MongDB
-
数据计算:Hive,Spark,Flink,Storm
-
交互式查询:Impala,Kylin,Durid,Presto
-
-
框架版本选取:
-
Apache:开源,但运维麻烦,组件间兼容性需要自 己调研,一般大公司用的多拥有专业运维团队。
-
CDH:使用广泛,但CDH不开源,中小公司使用的 多。
-
MRS(华为的):通过网络提供廉价可伸缩的大数据存储计算 能力,不需要考虑组件间兼容性,有专业运维团队
-
-
搜索
复制
<iframe></iframe>标签:总结,采集,批处理,数据源,实时,处理,数据,概念性 来源: https://www.cnblogs.com/eternity-star/p/16339905.html