. 1大数据平台技术方案1.大数据平台技术方案31.1技术路线31.2动静态信息交换41.2.1系统概述41.2.2数据采集效劳41.2.3数据采集效劳配置51.2.4平台认证效劳51.2.5动静态数据发布订阅效劳51.2.6负载均衡效劳61.2.7协议分析转换功能61.2.8动静态数据分发效劳61.2.9数据分发效劳配置61.2.10数据缓存效劳71.2.11数据交换信息日志71.3大数据存储71.3.1数据仓库工具81.3.2大数据在线存储81.3.3大数据离线存储91.4数据清洗转换121.4.1流数据处理框架121.4.2分布式ETL工具121.4.3ETL功能介绍121.5大数据处理141.5.1实时数据流处理141.5.2数据挖掘分析引擎151.6大数据效劳引擎151.6.1大数据配置效劳管理151.6.2大数据在线分析151.6.3大数据离线分析161.6.4大数据可视化管理181.7大数据全文检索191.8调度与业务监控201.9资源与平安20 1.9.1租户管理21 1.9.2资源分配21 1.9.3权限管理21 1.10接口封装221.大数据平台技术方案1.1概述大数据平台必须具有高度可扩展性、实时性、高性能、低延迟分析、高度容错性、可用性、支持异构环境、开放性、易用性,同时也希望具有较低本钱;其核心技术包括大规模数据流处理技术以及大规模数据管理、分析技术。
系统技术架构采用面向效劳的体系构造〔Service-Oriented Architecture, SOA〕,遵循分层原则,每一层为上层提供效劳。
将大数据平台进展逐层解析,从下至上分别是数据接口层、文件存储层、数据存储层、数据分析层、数据层、业务控制层、表现层、系统监控层。
〔1〕数据接口层:为保证数据接入层的接口灵活性,采用Restful风格接口实现方式,Restful有轻量级以及通过直接传输数据的特性,Web 效劳的 RESTful 方法已经成为最常见的方法。
同时数据的接入及交换采用Kafka 集群和WebService方式,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以满足系统与大数据平台的高并发量数据交换。
Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的*M 标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
〔2〕文件存储层:为满足大数据的存储要求,文件存储采用HDFS文件系统,Hadoop分布式文件系统(HDFS)是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
〔3〕数据存储层:根据本工程数据资源设计的需要,数据存储分别采用关系数据库、存数据库Redis、分布式大数据存储。
〔4〕数据分析层:采用Storm技术完成实时流分析的需求,Storm是一个分布式的、容错的实时计算系统。
可以方便地在一个计算机集群中编写与扩展复杂的实时计。
采用MapReduce和Spark实现离线分析。
Spark是类HadoopMapReduce的通用并行框架,能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
〔5〕数据接入层:应用与数据库的交互采用JDBC级Hibernate技术实现。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进展了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
〔6〕业务控制层:采用当今最流行的轻量级Java开发框架Spring,同时与SpringMVC整合。
Spring具有轻量、低侵入式设计、方便解耦,简化开发、AOP编程的支持、方便集成各种优秀框架等优点。
〔7〕表现层:采用EasyUI,Aja*,FreeMarker,JavaScript技术,这些技术能极大提高开发效率,同时能满足工程中各种复杂的前端展现要求。
〔8〕监控层:采用Zookeeper 分布式效劳框架。
主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名效劳、状态同步效劳、集群管理、分布式应用配置项的管理等。
它的作用主要是用来维护和监控你存储的数据的状态变化。
通过监控这些数据状态的变化,从而可以到达基于数据的集群管理。
1.2动静态信息交换1.2.1系统概述动静态信息交换建立目的是通过标准的规性数据接口定义,实现采集各类动态和静态数据,实现与接入平台的数据通信与交换共享。
数据采集交换系统根据数据交换的对象和容的不同,效劳对象包括省市级管理机构等。
数据交换平台包含一系列的效劳,如:数据采集效劳、平台认证效劳、发布订阅效劳等。
1.2.2数据采集效劳数据采集效劳采集各级行业管理部门、各行业业务系统的数据信息,对这些静动态数据进展收集,用以进展后续操作。
数据采集模块按照定义的接口规进展连接、响应、接收、发送处理。
接收各级行业管理部门报送的数据。
1.2.3数据采集效劳配置针对上报大数据管理平台的信息,灵活配置其可采集的效劳种类,来源,IP 地址,采集的数据类型以及效劳方式,使数据的采集更加灵活可控。
数据采集效劳配置模块的主要功能有:(1)动态配置效劳。
根据IP、数据类型和效劳方式对效劳进展动态配置。
(2)对接入数据进展验证。
不允许非配置的效劳接入数据,允许配置的效劳接入数据。
1.2.4平台认证效劳为了保障数据效劳的平安性,在传输数据之前,需要先通过接口进展登录认证,从而确定数据交换平台及权限,以及平台接入的有效期。
平台认证模块主要功能有:根据平台信息进展登录认证。
根据申请接入的其他平台或者系统的相关信息,对该平台或者系统进展身份验证。
根据认证结果获取登录权限和有效期等信息。
如果验证通过,则允许接入系统,如果验证不通过,则不允许接入。
1.2.5动静态数据发布订阅效劳发布订阅效劳根据分发调度策略,判断采集动静态数据属于*个地市,发布到该地市的主题,存储到消息队列,记录日志。
动静态数据发布订阅模块的主要功能有:(1)获取信息,将数据存储到消息队列。
根据接入数据的相关信息,获取对应的信息。
(2)记录日志信息。
将信息下发到相应的消息队列,并记录日志信息。
1.2.6负载均衡效劳根据数据采集效劳和分发效劳进展负载分析与数据的多路径流向调整,用以减小平台压力,提高平台的运行效率。
负载均衡模块的主要功能是根据采集效劳和分发效劳进展负载均衡处理。
1.2.7协议分析转换功能按协议规对上报数据进展解析,对分发的数据进展封装,实现与其他平台的数据准确对接。
协议分析转换模块的主要功能有:(1)按协议规对上报数据进展解析。
对接入的数据,按照预先指定的协议进展解析,方便在系统中的处理和流通。
(2)对分发的数据进展封装。
对于系统处理过的数据,要根据预先指定的协议,将数据进展打包封装,然后下发到其他平台或者系统。
1.2.8动静态数据分发效劳根据各级数据请求,按照定义的接口规进展连接、响应、按主题分发处理。
分发各类动静态信息。
(1)按照定义的接口规进展连接响应。
(2)对数据按照主题进展分发。
根据接入数据的相关信息,从而获取相关的数据需求方信息,并且获取相应的主题信息,并将数据按照主题下发到相应的平台。
1.2.9数据分发效劳配置针对分发平台的信息,灵活配置分发的效劳种类,分发的数据类型以及效劳方式,实现分发的灵活可控性。
数据分发效劳配置模块的主要功能有:(1)获取将要分发的平台的信息。
根据系统中提供的其他平台的相关数据,获取将要分发的平台的相关信息,方便后续数据的分发。
(2)根据平台的信息配置要进展分发的效劳。
根据已经获取的相关的平台的数据,对平台的效劳信息进展配置。
1.2.10数据缓存效劳数据缓存效劳主要提供本工程动态信息存缓存、持久化存储当前点以及缓存预处理的数据,向数据应用提供快速访问中间数据源。
数据缓存模块的主要功能是进展数据缓存,如存缓存、持久化存储当前点以及缓存预处理网格信息等数据。
1.2.11数据交换信息日志记录数据采集以及分发的数据量,为验证数据交换的完整性、可追溯性以及可视性打下根底。
数据交换信息日志模块的主要功能有:(1)记录数据采集获取的数据量。
在进展数据交互时,记录接入的数据的数据量信息。
(2)记录数据分发的数据量。
在进展数据的交互时,记录分发的数据的数据量信息。
1.3大数据存储根据业务类型,数据划分为根底信息数据库、主题数据库、业务数据库三大数据库。
其中根底数据库存储行业的静态数据以实现与实时数据的快速拟合;主题数据库各类主题数据;业务库存储实时的业务数据。
根据数据的使用时效分为在线存储、离线存储。
1.3.1数据仓库工具随着大数据平台不断的接入海量数据,大数据平台引入数据仓库技术来解决各类业务问题。
数据仓库是一个抽象的概念所以可以简单的理解为不同粒度的数据层,比方:数据缓冲层(存放当日增量数据)、数据明细层(存放最全的明细数据)、数据模型层(轻粒度的数据汇总以及模型设计,这个时候需要设计相应的主题)、数据集市层(一般就是一些宽表,包含多维度和指标,方便用来做多维分析)、数据应用层(主要是开放给业务侧使用,多存放粗粒度的数据报表)。
通过数据仓库模型为各类应用提供数据支撑。
1.3.2大数据在线存储大数据在线存储存储临时性的数据,提供高效数据索引,面向列的高可靠性、高性能、可伸缩的分布式存储,以及面向RMDB的数据导入与导出功能。
大数据在线存储子系统提供简化编程模型支持、容错、横向线性扩展等特性。
在线存储主要利用Hbase列式数据库做为主在线存储。
在线存储的技术架构如上图所示,其中:HBase Client使用HBase的RPC机制与HMaster和HRegionServer进展通信。
对于管理类操作〔如建表,删表等〕,Client和HMaster进展RPC;对于数据读写类操作,Client和HRegionServer进展RPC。
每台HRegionServer都会与HMaster进展通信,HMaster的主要任务就是要告诉每台HRegion Server它要维护哪些HRegion。
当一台新的HRegionServer登录到HMaster时,HMaster会告诉它等待分配数据。
而当一台HRegion死机时,HMaster 会把它负责的HRegion标记为未分配,然后再把它们分配到其他的HRegion Server 中。
HBase通过多个HMaster实例和Zookeeper的协调功能解决了HMaster单点故障问。
HMaster在功能上主要负责Table和Region的管理工作。