任何完整的大数据平台,一般包括以下的几个过程:
数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)
1、大数据采集
大数据采集框架:Chukwa、Splunk Forwarder、Flume、Fluentd、Logstash、Scribe。
爬虫技术:Nutch、Heritrix、Scrapy、WebCollector。
1.1、离线采集:
工具:ETL;
在数据仓库的语境下,ETL基本上就是数据采集的代表,包括数据的提取(Extract)、转换(Transform)和加载(Load)。在转换的过程中,需要针对具体的业务场景对数据进行治理,例如进行非法数据监测与过滤、格式转换与数据规范化、数据替换、保证数据完整性等。
1.2、实时采集:
工具:Flume/Kafka;
实时采集主要用在考虑流处理的业务场景,比如,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和 web 服务器记录的用户访问行为。在流处理场景,数据采集会成为Kafka的消费者,就像一个水坝一般将上游源源不断的数据拦截住,然后根据业务场景做对应的处理(例如去重、去噪、中间计算等),之后再写入到对应的数据存储中。这个过程类似传统的ETL,但它是流式的处理方式,而非定时的批处理Job,些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求
1.3、互联网采集:
工具:Crawler, DPI等;
Scribe是Facebook开发的数据(日志)收集系统。又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它支持图片、音频、视频等文件或附件的采集。
开源的日志系统,包括facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flume等。

1.4、其他数据采集方法
对于企业生产经营数据上的客户数据,财务数据等保密性要求较高的数据,可以通过与数据技术服务商合作,使用特定系统接口等相关方式采集数据。比如八度云计算的数企BDSaaS,无论是数据采集技术、BI数据分析,还是数据的安全性和保密性,都做得很好。
数据的采集是挖掘数据价值的第一步,当数据量越来越大时,可提取出来的有用数据必然也就更多。只要善用数据化处理平台,便能够保证数据分析结果的有效性,助力企业实现数据驱动。
2、数据存储
2.1、 大数据基础技术
2.1.1 数据分片路由
通过数据分片(Shard/Partition)来将数据进行切分到不同机器中去,分片以后,如何能够找到某一条记录。这就是数据的分片和路由。
在大数据的存储系统中,为了增加系统的可靠性,往往会将同一份数据存储多个副本。数据是如何复制

2.2 存储技术
大数据存储面向海量、异构、大规模结构化非结构化等数据提供高性能高可靠的存储以及访问能力,通过优化存储优化存储基础设施、提供高性能。高吞吐率、大容量的数据存储方案,解决巨大数据量的存储问题,同时为大规模数据分析、计算、加工提供支撑。

根据服务器类型,我们将存储的分类分为:
- 封闭系统的存储(封闭系统主要指大型机)
- 开放系统的存储(开放系统指基于 Windows、UNIX、Linux 等操作系统的服务器)
开放系统的存储分为:
- 内置存储
- 外挂存储
外挂存储根据连接的方式分为:
- 直连式存储(Direct-Attached Storage,简称 DAS)
- 网络化存储(Fabric-Attached Storage,简称 FAS)
网络化存储根据传输协议又分为:
- 网络接入存储(Network-Attached Storage,简称 NAS)
- 存储区域网络(Storage Area Network,简称 SAN)
针对不同的应用场景,选择的分布式存储方案也会不同,因此有了对象存储、块存储、文件系统存储。

目前业界比较流行的分布式存储系统如下:HDFS、OpenStack Swift、Ceph、GlusterFS、Lustre、AFS、OSS。
2.3 数据库
2.3.1 分布式关系型数据库
流行的分布式关系型数据库如下:DRDS、TiDB、GreenPlum、Cobar、Aurora、Mycat。
2.3.2 分析型数据库
分析数据库是面向分析应用的数据库,与传统的数据库不同,它可以对数据进行在线统计、数据在 线分析、随即查询等发掘信息数据价值的工作,是数据库产品一个重要的分支。
目前业界比较流行的分析型数据库如下:Kylin、AnalyticDB、Druid、Clickhouse、Vertica、MonetDB、InfiniDB、LucidDB。
2.3.3 图数据库
图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。它的数据模型主要是以节点和关系(边)来体现,也可处理键值对。它的优点是快速解决复杂的关系问题。
目前业界比较流行的图数据库如下:Titan、Neo4J、ArangoDB、OrientDB、MapGraph、ALLEGROGRAPH。
2.3.4 列存储数据库
列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于大批量的数据处理,常用于联机事务型数据处理。
目前业界比较流行的列存储数据库如下:Phoenix、Cassandra、Hbase、Kudu、Hypertable。
2.3.5文档数据库
文档型数据库是 NoSQL 中非常重要的一个分支,它主要用来存储、索引并管理面向文档的数据或者类似的半结构化数据。
目前业界比较流行的文档型数据库如下:MongoDb、CouchDB、OrientDB、MarkLogic。
2.3.6键值存储数据库
目前业界比较流行的键值存储数据库如下:Redis、Memcached、Tair。
3.数据计算
大数据计算主要完成海量数据并行处理、分析挖掘等面向业务需求。大数据计算通过将海量的数据分片,多个计算节点并行化执行,实现高性能、高可靠的数据处理,同时提供分布式任务管理和调度的支撑。针对不同的数据处理需求,主要有大规模批量处理、流式计算、图计算、即席分析等多种计算。
3.1 流式计算(Streaming compute)
流式计算:利用分布式的思想和方法,对海量“流”式数据进行实时处理。流式计算更加强调计算数据流和低时延。这边所谓的流数据( streaming data)是一种不断增长的,无限的数据集。
流式计算是否等于实时计算?习惯上实时和流式等价,但其实这种观点并不完全正确。数据的发生的时间和处理时间有可能是不一致的,只能说流式计算是一种低延迟的计算方式。
注意:本文将微批处理和流处理混在一起。
业界常见的流式计算框架:Storm、Flink、Yahoo S4、Kafka Stream、Twitter Heron、Apache Samza、Spark Streaming。
3.2.大规模批量计算(batch compute)
大规模批量计算是对存储的静态数据进行大规模并行批处理的计算。批量计算是一种批量、高时延、主动发起的计算。习惯上我们认为离线和批量等价,但其实是不准确的。离线计算一般是指数据处理的延迟。这里有两方面的含义第一就是数据是有延迟的,第二是是时间处理是延迟。在数据是实时的情况下,假设一种情况:当我们拥有一个非常强大的硬件系统,可以毫秒级的处理 Gb 级别的数据,那么批量计算也可以毫秒级得到统计结果。
业界常见的大规模批量计算框架:Tez、MapReduce、Hive、Spark、Pig、大数据的编程模型 Apache Beam。
3.3.即席查询分析 (ad-hoc query)
大数据进行即席查询分析近两年日益成为关注领域。即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据条件快速的进行查询分析返回结果。即席查询和分析的计算模式兼具了良好的时效性与灵活性,是对批处理,流计算两大计算模式有力补充。大规模批量计算解决了大数据量批处理的问题,而即席查询分析则解决了适合商业智能分析人员的便捷交互式分析的问题。
业界常见的框架:Impala、Hawq、Dremel、Drill、Phoenix、Tajo、Presto、Hortonworks Stinger。
3.4.全量计算 & 增量计算
很多大数据的任务中,数据是一个增量收集和更新的过程,这时候对于数据的处理可以使是全量加上增量计算的方式。增量计算只对部分新增数据进行计算来极大提升计算过程的效率,可应用到数据增量或周期性更新的场合。典型例子就是搜索引擎的周期性索引更新。
相关基础知识:Lambda 架构、Kappa 架构、IOTA 架构。
业界常见框架:Microsoft Kineograph、Galaxy、Google Percolator、Druid。
3.5.图计算
图计算是一类在实际应用中非常常见的计算类型。许多大数据都是以大规模图或网络的形式呈现,如社交网络、传染病传播途径、交通事故对路网的影响许多非图结构的大数据,也常常会被转换为图模型后进行分析。图数据结构很好地表达了数据之间的关联性。要处理规模巨大的图数据,传统的单机处理方式已经无力处理,必须采用大规模机器集群构成的并行数据库。
相关基础知识:GAS 编程模型、BSP 模型、节点为中心编程模型、计算范型。
业界常见框架:Pregel、GraphChi、Spark GraphX、PowerGrah、Apache Giraph、Apache Hama。
3.6.分布式协调系统
大规模分布式系统中需要解决各种类型的协调需求,例如当当系统中加入一个进程或者物理机,如何自动获取参数和配置,当进程和物理机发生改变如何通知其他进程;单主控服务发生瘫痪,如何能够从备份中选取新的主控服务。分布式协调系统适用于大型的分布式系统,可以提供 统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等服务。
业界常见框架:Chubby、阿里 Diamond、阿里 ConfigServer、zookeeper、Eureka、Consul。
3.7.集群资源管理和调度
资源管理调度的本质是集群、数据中心级别的资源统一管理和分配,以提高效率。其中,多租户、弹性计算、动态分配是资源管理系统要核心解决问题。
管理调度框架:Omega、Brog、Mesos、Corona、Yarn、Torca。
管理和监控工具:Ambari、Chukwa、Hue。
3.8.工作流管理引擎
随着企业的发展,他们的工作流程变得更加复杂,越来越多的有着错综复杂依赖关系的工作流需要增加监控,故障排除。如果没有明确的血缘关系。就可能出现问责问题,对元数据的操作也可能丢失。这就是有向无环图(DAG),数据管道和工作流管理器发挥作用的地方。
复杂的工作流程可以通过 DAG 来表示。DAG 是一种图结构。信息必须沿特定方向在顶点间传递,但信息无法通过循环返回起点。DAG 的构建是数据管道,或者是一个进程的输入成为下一个进程的输入的顺序进程。
构建这些管道可能会很棘手,但幸运的是,有几个开源的工作流管理器可用于解决这个问题,允许程序员专注于单个任务和依赖关系。
业界常见框架:Oozie、Azkaban、Luigi、Airflow。
4.数据仓库
4.1.数据挖掘
分析挖掘是通过算法从大数据红提炼出具有价值的信息和知识的过程。以机器和算法为主导,充分发挥机器在数据分析挖掘中的效率和可靠性的优势,提供对结构化数据以及文本、图像、视频和语言等非结构数据分析挖掘。数据分析挖掘包括一些通用的数据挖掘方法,也包括深度学习,机器学习,统计分析等
5. 数据应用
大数据应用是整个大数据生命周期中最重要的一个环节之一。随着大数据应用越来越广泛,应用的行业也越来越低,每天都可以看到大数据的一些新奇的应用,从而帮助人们从中获取到真正有用的价值。下面和大家介绍下大数据应用方面相关技术。
5.1 数据可视化
人类的眼睛是一对高带宽巨量视觉信号输入的并行处理器,拥有超强模式识别能力,配合超过 50% 功能用于视觉感知相关处理的大脑,使得人类通过视觉获取数据比任何其他形式的获取方式更好,大量视觉信息在潜意识阶段就被处理完成,人类对图像的处理速度比文本快 6 万倍。
数据可视化正是利用人类天生技能来增强数据处理和组织效率。





6. 数据治理


7. 元数据管理
元数据 MetaData 狭义的解释是用来描述数据的数据,广义的来看,除了业务逻辑直接读写处理的那些业务数据,所有其它用来维持整个系统运转所需的信息/数据都可以叫作元数据。比如数据表格的 Schema 信息,任务的血缘关系,用户和脚本/任务的权限映射关系信息等等。
管理这些附加 MetaData 信息的目的,一方面是为了让用户能够更高效的挖掘和使用数据,另一方面是为了让平台管理人员能更加有效的做好系统的维护管理工作。

本文详细介绍大数据领域的关键技术,包括数据采集、存储、计算等多个环节。涵盖了从数据采集工具如Flume、Kafka,到数据存储解决方案如HDFS、Ceph,再到数据计算框架如Spark、Flink等内容。

893

被折叠的 条评论
为什么被折叠?



