<img width="0" height="0" src="http://counter.kds.iciba.com/ds2rd.php?p=2367" style="border:none">
转至元数据结尾
转至元数据起始

 

 

Edit Document

目录

一.平台架构规划

二.功能描述

三.大数据平台下的数据整合流程( ETL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

信息时代的数据规模呈现几何级别的增长,数据的存储和处理对传统的应用架构造成了巨大的挑战,单机模式、关系型数据库存储已经无法适应 TB 甚至 PB 级别的应用需求。随着互联网技术的飞快发展,并行处理、分布式运算以及列存数据库的概念和应用越来越受到重视,尤其最近几年,在大数据领域涌现出了许多架构和计算模型,比较典型的是基于 HCFS 系统规范的 Map-Reduce 计算模型、 Spark 弹性数据集运算和列存数据库等。

 

本文以国内某大型机构的数据处理系统升级方案为基础,重点阐述升级前后数据存储及处理方式的差异及架构方案。该机构每天接收 10GB 的新增数据,目前有 60TB 的历史数据,数据库采用部署在小型机上的 Oracle ETL 的主要流程在这台小型机上进行处理。由于业务上有全量查询的要求,技术人员在相关业务表上建立了多个索引,最多达到几百个索引。根据我们与客户的交流,我们得知每天 10GB 的数据处理通常要几个小时甚至十几个小时,这些时间通常消耗在索引更新和数据读取上。我们知道,对于绝大部分系统来说,磁盘 IO 始终是一个瓶颈,百兆级别的读取速度远远落后于系统的处理能力;同时,在一张表或多个关联表上维护数以百计的索引数据的时间开销是惊人的,也几乎是无法承受的。

 

该机构坦言,现有系统架构的处理能力已经趋于极限,考虑到将来要处理的数据可能是 20GB 或者 100GB ,而且用户对 ETL 和在线应用的性能要求越来越高,系统更新换代势在必行。我们在充分了解了客户的需求之后,结合我们的 UDH 产品和其它部门一些专家的建议,给出了该机构的系统重建方案,获得了用户的高度认可。

 

以下我就系统中与大数据相关的内容展开论述,主要包括:平台架构规划,功能描述和数据整合流程。

一.平台架构规划

  1. 总体规划

 

1.jpg

  1. 拓扑示意图

 

2.jpg

  1. 大数据处理平台集群配置

         节点配置

40 个节点。每个节点:硬盘 20TB ,内存 128GB 8 核以上 CPU

         网卡

万兆网卡

         交换机

万兆交换机级联

         机柜

至少两组 20U 机柜

二.功能描述

  1. 数据收集

 

3.jpg

 

         系统构成

当各机构数据收集完成后,启动 Sqoop 导出数据到 Hive 数据仓库中的源数据层。

Hive 数据仓库 部署在大数据平台。以各机构代码为基础建立分区表,每个机构一个分区,每个机构分区内建立以年为单位的分区,即每年一个分区。这一组表是历史表,也是后续各类操作的源数据表。

         数据处理

         Sqoop 导入增量数据到 Hive 数据仓库中的历史数据库;

         工作流每天运行一次。

 

  1. 数据处理

 

4.jpg

 

         系统构成

Hive 历史库(源数据层) 部署在 UDH 平台。以各机构代码为基础建立分区表,每个机构一个分区,每个机构分区内建立以年为单位的分区,即每年一个分区。这一组表是历史表,也是后续各类操作的源数据表。

ETL DB (加工层 1..n 部署在 UDH 平台。部署在大数据平台。根据业务需求建立相关的 ETL 中间表、业务表。这一组库、表是上层关系型数据库的源数据表, ETL 完成后将导出增量数据到上层数据库。

         数据处理

         数据导入工作流完成后启动 ETL 工作流;

         ETL 工作流中可根据需求定制处理逻辑,比如数据去重、合并、拆分等,可以使用 Spark Impala Spark SQL 等工具提高处理速度;

         处理后的数据导入到 ETL DB 中相关业务表、维度表;

         工作流每天运行一次。

 

  1. 数据导出

5.jpg

 

         系统构成

ETL DB( 加工层 1..n) 部署在大数据平台。部署在大数据平台。根据业务需求建立相关的 ETL 中间表、业务表。这一组表是上层应用库的源数据表, ETL 完成后将导出增量数据到上层数据库。

应用库 - 传统关系型数据库,部署在一体机上。

         数据处理

         ETL 工作流完成后启动数据导出工作流;

         导出工作流中可根据需求定制导出逻辑,包括用于 OLAP 应用、报表等的增量数据(或者全量数据,如果需要对之前产生的数据进行更新)导出到应用库;导出工具为 Sqoop

         如果存在全量数据导出的情况,可考虑是否可以对业务逻辑进行适当的改动,全量查询操作在大数据平台上进行。应用库中只存放分析表和综合表等。

         工作流每天运行一次。

 

  1. 应用库

         系统构成

         部署在一体机上的传统关系型数据库。

         数据处理

         大数据处理平台在基础库之上进行 ETL ,结果导出到应用库;

         可在应用库上执行查询,进行统计分析;

         应用库的数据直接由大数据平台导出。

 

  1. 分布式缓存

 

         系统构成

Web/App Server 应用服务器和 Web 应用。查询时首先查找缓存服务器中是否存在相应的查询结果缓存。若有,返回结果;若没有,加入查询结果到缓存服务器,并返回结果。

应用库 查询数据源。若缓存服务器没有相应的查询结果,则应用服务器直接查询这个数据库。

Cache Server 分布式缓存服务器集群,缓存查询结果。缓存数据依据查询操作进行更新,每天在数据导出结束后(从大数据平台到应用库)进行一次全量更新

         数据处理

每天在数据导出结束后(从大数据平台到应用库)进行一次全量更新;

查询数据,更新缓存 .

三.大数据平台下的数据整合流程( ETL

  1. 总体架构

 

7.jpg

  1. 流程说明

         数据上传 数据收集服务器 HDFS

         数据导入 HDFS 数据仓库

         数据导出 数据仓库 外部数据库(应用库)

         数据查询 应用库 业务系统

         数据缓存 业务系统 分布式缓存集群

写评论…