整体架构

大数据平台整体架构可分为七大部分:目录管理、数据集成、数据资产管理、数据治理、数据开发、数据分析、数据共享及数据安全。
点击查看【processon】

1. 目录管理系统

目录管理系统用于盘点和梳理业务数据,编制发布业务目录,规划和指导数据的采集、处理、管理和共享等。一般包括目录分类管理、目录编制、审核和发布功能。

2. 数据采集系统

数据采集系统为大数据平台提供基础支撑性服务,构建高效、易用、可扩展的数据传输通道。
点击查看【processon】

3. 数据资产管理系统

数据资产管理系统主要作用为标准数据管理、元数据管理、数据资源管理和数据资产盘点。
标准数据管理
管理对象为字典、数据元(用于业务方标准化管理业务字段),形成数据标准体系。
元数据管理
元数据是所有系统、文档和流程中包含的所有数据的语境,是生数据的知识。

  • 元模型管理:获取并展示不同数据库类型的元模型元素及属性信息;
  • 数据源管理:新增、编辑、维护数据库信息;
  • 元数据注册:包括表、视图、索引、字段、列族、消息等各类元模型下的元数据;
  • 元数据查看:按数据源查看已注册的所有元数据,并可查看元数据的关联关系、血缘关系。

数据资源管理
对数据资源进行目录化管理,形成有层级、有结构的数据资源集市。

  • 数据目录分类:实现数据目录的分类设置;
  • 数据目录编制:实现数据目录的新增、修改、删除、停/启等;
  • 业务目录映射:配置业务目录与数据目录的映射关系;

数据资产盘点:数据资产仪表盘、数据资产查看。

4. 数据治理系统

数据治理系统用于规范数据的生成以及使用,改进数据质量,对数据进行加工处理,提升数据价值。提供识别和度量数据质量能力、数据清洗转换能力、数据加工三个核心能力。
数据质量管理
包括规则管理(准确性、完整性、唯一性、一致性、及时性、业务关联性等)、任务配置、检查报告。
数据规整管理
包括格式转换、字典转换、内容转换、任务管理、日志等。
数据加工
模型定义、模型调度。
点击查看【processon】

5. 数据共享系统

数据共享系统依托数据资源目录,按照数据交换标准,实现数据资源跨部门、跨层级、跨区域共享交换。提供资源展示、检索、申请、使用、下载能力,用户管理和资源授权能力,以及数据库表、服务接口、文件等类型共享交换能力。
点击查看【processon】

6. 数据开发系统

数据开发系统使用大数据或人工智能算法组件对数据进行分析、挖掘,形成数据服务产品。数据开发管理:包括应用工程管理、计算任务管理、任务调度管理、资源管理等。应用开发工具:提供在线开发IDE、数据源控件库、预处理控件库、模型控件库、可视化控件库、输出控件库、挖掘算法库等。

7. 数据分析系统

对接各种业务数据库、数据仓库以及大数据平台,为用户提供从基本数据查询统计、数据交叉汇总、自由钻取分析、多维数据分析等多层次的数据分析功能。用户只需用鼠标拖拽指标和维度,即可产生数据分析结果。同时提供丰富的统计图表用于分析结果的可视化展示。

组件分层

大数据平台技术架构从下往上依次为数据源层、数据获取层、数据存储层、数据处理层、数据应用层。
点击查看【processon】

1. 数据源层

  • 非结构化数据

包括图片、声音、视频等,这类数据通常无法直接知道它的内容,数据库通常将它保存在一个BLOB字段中。一般的做法是,建立一个包含三个字段的表(编号 number、内容描述 varchar(1024)、内容 blob)。引用通过编号,检索通过内容描述。

  • 半结构化数据

半结构化数据具有一定的结构性,但是结构变化很大。因为我们要了解数据的细节所以不能将数据简单的组织成一个文件按照非结构化数据处理,由于结构变化很大也不能够简单的建立一个表和他对应。其存储方式有两种:一种是化解为结构化数据,另一种是用XML格式来组织并保存到CLOB字段中。

2. 数据获取层

为大数据平台提供基础支撑性服务,提供多种数据接入工具,实现结构化和非结构化的数据的汇聚接入,并支持数据的预处理,为大数据平台提供原始数据支撑。
比较典型的组件有:

组件 备注
Flume 采集埋点信息、系统日志等
Sqoop 关系型数据库与HDFS数据同步与迁移
Kafka 消息队列

3. 数据存储层

存储了经过清洗处理后的可用于生产系统的数据,比如元数据,业务数据库,模型数据库等,该层直接面向应用系统,要求高可靠、高并发、高精度。
比较典型的组件有:

组件 备注
HDFS Apache HDFS是面向Hadoop的文件系统,不过它也可以用作一种独立的分布式文件系统。它基于Java,具有容错性、高度扩展性和高度配置性。
HBase Apache HBase是为有数十亿行和数百万列的超大表设计的,这是一种分布式数据库,可以对大数据进行随机性的实时读取/写入访问。它有点类似谷歌的Bigtable,不过基于Hadoop和Hadoop分布式文件系统(HDFS)而建。
Elasticsearch elastic ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

4. 数据处理层

离线数据处理:大数据离线处理一般使用 Hdfs或MPP 存储数据,使用MapReduce、Spark做批量计算,计算完成的数据如需数据仓库的存储,直接存入 Hive , 然后从Hive 进行展现。
实时数据处理:是指计算机对现场数据在其发生的实际时间内进行收集和处理的过程。
比较典型的组件有:

组件 备注
MapReduce Apache 作为Hadoop一个不可或缺的部分,MapReduce这种编程模型为处理大型分布式数据集提供了一种方法。它最初是由谷歌开发的,但现在也被本文介绍的另外几个大数据工具所使用,包括CouchDB、MongoDB和Riak。
Spark Apache 作为MapReduce之外的一种选择,Spark是一种数据处理引擎。它声称,用在内存中时,其速度比MapReduce最多快100倍;用在磁盘上时,其速度比MapReduce最多快10倍。它可以与Hadoop和Apache Mesos一起使用,也可以独立使用。
Flink Apache Flink提供了基于Java和Scala的API,是一个高效、分布式的通用大数据分析引擎。更主要的是,Flink支持增量迭代计算,使得系统可以快速地处理数据密集型、迭代的任务。

5. 数据应用层

深入分析行业数据特点,梳理行业数据产品需求,建立适用于不同行业的数据应用产品。
比较典型的组件有:

组件 备注
Druid Apache Druid 是一个用于大数据实时查询和分析的高容错、高性能、分布式的开源系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。
Kibana elastic Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面。
Zeppelin Apache Zeppelin 是一个提供交互数据分析且基于Web的notebook。方便你做出可数据驱动的、可交互且可协作的精美文档,并且支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。

扩展组件

■ 运维监控

监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。 目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力,效率最高的方案。
比较典型的组件有:

组件 备注
Azkaban Linkedin Azkaban是由linked开源的一个批量工作流任务调度器,它是由三个部分组成:Azkaban Web Server(管理服务器)、Azkaban Executor Server(执行管理器)和MySQL(关系数据库),可用于在一个工作流内以一个特定的顺序运行一组工作和流程,可以利用Azkaban来完成大数据的任务调度,大数据开发需掌握Azkaban的相关配置及语法规则。
Zabbix Alexei Vladishev Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
Grafana GrafanaLabs Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。

■ 数据安全

在实现大数据集中后,如何确保网络数据的完整性、可用性和保密性,不受到信息泄漏和非法篡改的安全威胁影响,已成为政府机构、事业单位信息化健康发展所要考虑的核心问题。
大数据安全的防护技术有:数据资产梳理(敏感数据、数据库等进行梳理)、数据库加密(核心数据存储加密)、数据库安全运维(防运维人员恶意和高危操作)、数据脱敏(敏感数据匿名化)、数据库漏扫(数据安全脆弱性检测)等。
比较典型的组件有:

组件 备注
Kerberos MIT Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。
Ranger Apache Apache Ranger 是一个用在 Hadoop 平台上并提供操作、监控、管理综合数据安全的框架。Ranger 的愿景是在 Apache Hadoop 生态系统中提供全面的安全性。 目前,Apache Ranger 支持以下 Apache 项目的细粒度授权和审计:Hadoop/Hive/HBase/Storm/Knox/Solr/Kafka/YARN。
Sentry Apache Sentry 是一个开源的实时错误报告工具,支持 Web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。使用Sentry对数据安全管理很有帮助。

■ 开发平台

比较典型的组件有:

组件 备注
Beam Apache Beam基于Java提供了统一的数据进程管道开发,并且能够很好地支持Spark和Flink。提供很多在线框架,开发者无需学太多框架。 Beam是一个统一的编程框架,支持批处理和流处理,并可以将用Beam编程模型构造出来的程序,在多个计算引擎(Apache Apex, Apache Flink, Apache Spark, Google Cloud Dataflow等)上运行。
Cascading Cascading Maintainers Cascading 是一个基于Hadoop建立的API,用来创建复杂和容错数据处理工作流。它抽象了集群拓扑结构和配置,使得不用考虑背后的MapReduce,就能快速开发复杂的分布式应用。
Lumify Altamira Lumify归Altamira科技公司(以国家安全技术而闻名)所有,这是一种开源大数据整合、分析和可视化平台。你只要在http://Try.Lumify.io试一下演示版,就能看看它的实际效果。