1. 1.1 1.2
大数据平台技术方案 .................................................................................. 3 技术路线 .......................................................................................................... 3 动静态信息交换 .............................................................................................. 4
系统概述 .................................................................................................. 4 数据采集服务 .......................................................................................... 4 数据采集服务配置 .................................................................................. 5 平台认证服务 .......................................................................................... 5 动静态数据发布订阅服务 ...................................................................... 5 负载均衡服务 .......................................................................................... 6 协议分析转换功能 .................................................................................. 6 动静态数据分发服务 .............................................................................. 6 数据分发服务配置 .................................................................................. 6 数据缓存服务 .......................................................................................... 7 数据交换信息日志 .................................................................................. 7 数据仓库工具 .......................................................................................... 8 大数据在线存储 ...................................................................................... 8 大数据离线存储 .................................................................................... 10 流数据处理框架 .................................................................................... 12 分布式ETL工具 ................................................................................... 12
1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.2.10 1.2.11 1.3 1.3.1 1.3.2 1.3.3 1.4 1.4.1 1.4.2 1.5
大数据存储 ...................................................................................................... 7
数据清洗转换 ................................................................................................ 12
1.4.3 ETL功能介绍 ............................................................................................ 13
大数据处理 .................................................................................................... 15
实时数据流处理 .................................................................................... 15 数据挖掘分析引擎 ................................................................................ 15 大数据配置服务管理 ............................................................................ 16 大数据在线分析 .................................................................................... 16 大数据离线分析 .................................................................................... 17 大数据可视化管理 ................................................................................ 20
1.5.1 1.5.2 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.7
大数据服务引擎 ............................................................................................ 16
大数据全文检索 ............................................................................................ 21
1.8 1.9
调度与业务监控 ............................................................................................ 21 资源与安全 .................................................................................................... 22
租户管理 ................................................................................................ 22 资源分配 ................................................................................................ 23 权限管理 ................................................................................................ 23
1.9.1 1.9.2 1.9.3 1.10
接口封装 ........................................................................................................ 23
1. 大数据平台技术方案
1.1 概述
大数据平台必须具有高度可扩展性、实时性、高性能、低延迟分析、高度容错性、可用性、支持异构环境、开放性、易用性,同时也希望具有较低成本;其核心技术包括大规模数据流处理技术以及大规模数据管理、分析技术。
系统技术架构采用面向服务的体系结构(Service-Oriented Architecture, SOA),遵循分层原则,每一层为上层提供服务。将大数据平台进行逐层解析,从下至上分别是数据接口层、文件存储层、数据存储层、数据分析层、数据层、业务控制层、表现层、系统监控层。
(1)数据接口层:为保证数据接入层的接口灵活性,采用Restful风格接口实现方式,Restful有轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的方法。同时数据的接入及交换采用Kafka集群和WebService方式,Kafka是一种高吞吐量的分布式发布订阅消息系统,可以满足系统与大数据平台的高并发量数据交换。Web Service是一个平立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XM标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
(2)文件存储层:为满足大数据的存储要求,文件存储采用HDFS文件系统,Hadoop分布式文件系统(HDFS)是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
(3)数据存储层:根据本工程数据资源设计的需要,数据存储分别采用关系数据库、内存数据库Redis、分布式大数据存储。
(4)数据分析层:采用Storm技术完成实时流分析的需求,Storm是一个分布式的、容错的实时计算系统。可以方便地在一个计算机集群中编写与扩展复杂的实时计。采用MapReduce和Spark实现离线分析。Spark是类Hadoop
MapReduce的通用并行框架,能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
(5)数据接入层:应用与数据库的交互采用JDBC级Hibernate技术实现。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
(6)业务控制层:采用当今最流行的轻量级Java开发框架Spring,同时与SpringMVC整合。Spring具有轻量、低侵入式设计、方便解耦,简化开发、AOP编程的支持、方便集成各种优秀框架等优点。
(7)表现层:采用EasyUI,Ajax,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的管理工作。
HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。
HBase能提供实时计算服务是由其架构和底层的数据结构决定的,即由LSM-Tree(Log-Structured Merge-Tree) + HTable(region分区) + Cache决定——客户端可以直接定位到要查数据所在的HRegion server服务器,然后直接在服务器的一个region上查找要匹配的数据,并且这些数据部分是经过cache缓存的。
包括以下功能: (1) 高效数据索引
HBase读取首先会在缓存中查找,它采用了LRU(最近最少使用算法),如果缓存中没找到,会从内存中的MemStore中查找,只有这两个地方都找不到时,才会加载HFile中的内容,而使用了LSM树型结构的HFile节省了寻道开销,读取速度也会很快。
(2) 分布式存储
HBase存储的文件系统使用HDFS分布式存储系统,每张表都通过行键按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过预设大小(默认256M)就要被分割成两个。HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族(Column Family)创建一个Store实例,每个Store都会有0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile, HFile就是实际的存储文件。
1.3.3
大数据离线存储
大数据离线存储通过HDFS分布式文件系统技术为平台提供稳定可靠的存储支持。离线存储保存了所有历史数据。
大数据离线存储提供的功能包括:容错机制、集群资源管理、存储资源的访问隔离和横向扩展、数据的镜像和冗余等功能。
(1) 容错机制
HDFS通过多方面保证数据的可靠性,实现了高容错功能:多份复制并且分布到物理位置的不同服务器上、数据校验功能、后台的连续自检数据一致性功能。
(2) 集群资源管理
① 元数据节点用来管理文件系统的命名空间;数据节点是文件系统中真正存储数据的地方,其周期性的向元数据节点回报其存储的数据块信息。
② HDFS文件系统检查工具FSCK可以检查HDFS系统的健康状况。 ③ 一旦数据发生异常,NameNode可进入安全模式,便于数据的恢复。 ④ 每一个DataNode都会周期性运行一个数据扫描线程,它可以检测并通过修复命令来修复坏块或丢失的数据块。
(3) 存储资源的访问隔离
① 用户提交作业时,JobTracker端要进行身份核实,先是验证到底是不是这个人,即通过检查执行当前代码的人与JobConf中的user.name中的用户是否一致。
② 然后会检查ACL(Access Control List)配置文件(由管理员配置)看你是否有提交作业的权限。一旦你通过验证,会获取HDFS或者mapreduce授予的delegation token(访问不同模块有不同的delegation token)。
③ 之后的任何操作,比如访问文件,均要检查该token是否存在,且使用者跟之前注册使用该token的人是否一致。
另外HDFS Federation方案允许HDFS创建多个namespace以提高集群的隔离性。
(4) 存储资源的横向扩展
① 可扩展性是HDFS的一个重要特性,向HDFS集群中添加或删除节点,可以通过简单操作即可完成。新增或删除DataNode节点时,会导致数据块分布的不均匀,用户可以使用balance命令重新平衡DataNode上的数据块的分布。
② HDFS Federation方案使用了多个的Namenode/namespace来使得HDFS的命名服务能够水平扩展成联合集群
(5) 数据的镜像和冗余
① 冗余备份:HDFS将每个文件存储成一系列的数据块(Block),默认块大小为MB(可以自定义配置)。为了容错,文件的所有数据块都可以有副本(默认为3个,可以自定义配置)。当DataNode启动的时候,它会遍历本地文件系统,产生一份HDFS数据块和本地文件对应关系的列表,并把这个报告发送给NameNode,这就是报告块(BlockReport),报告块上包含了DataNode上所有块的列表。
② 副本存放:HDFS集群一般运行在多个机架上,不同机架上机器的通信需要通过交换机。通常情况下,副本的存放策略很关键,机架内节点之间的带宽比
跨机架节点之间的带宽要大,它能影响HDFS的可靠性和性能。HDFS采用一种称为机架感知(Rack-aware)的策略来改进数据的可靠性、可用性和网络带宽的利用率。在大多数情况下,HDFS副本系数是默认为3,HDFS的存放策略是将一个副本存放在本地机架节点上,一个副本存放在同一个机架的另一个节点上,最后一个副本放在不同机架的节点上。这种策略减少了机架间的数据传输,提高了写操作的效率。机架整体出现错误的几率远远比节点的少,所以这种策略不会影响到数据的可靠性和可用性。 1.4 数据清洗转换
大数据平台提供数据清洗转换工具,提供了一个强健、高效的数据处理引擎,支撑各种复杂的数据转换流程、任务调度流程的高效运行。引擎采取异步并行处理的技术,实现流程中的每个组件多线程并行高效处理;支持集群部署方式,允许将转换或转换中的比较耗时的数据处理组件部署在多台服务器上并发执行,从而将转换的工作分摊到多台服务器上,从而提高数据处理效率。 1.4.1
流数据处理框架
流数据处理框架是针对流式数据提供的可在分布式环境下运行的组件和程序框架,将针对实时数据的清洗、转换、计算程序在此框架下编写,运行在流数据处理组件中,从分布式消息队列中获取相应的实时数据,经过程序的处理后,推送到相应的位置中。例如实时流数据、路况数据等,经过清洗转换后,根据业务的需要推送到分布式文件系统、数据库或者其他的存储中。 1.4.2
分布式ETL工具
将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,支持分布式的部署方式,支持关系数据库、文件,支持SQL语句,操作简单容易上手,对抽取、转换、加载过程可监控。
公路路网道路地理数据等可开放直连数据库接口,此时可以使用分布式ETL工具从开放的数据库接口中将路网道路地理数据抽取出来,经过工具转换后,存入到分布式文件系统中。 1.4.3
ETL功能介绍
1.4.3.1 ETL引擎
提供任务引擎和转换引擎,支撑各种复杂的数据转换流程、任务调度流程的高效运行,为大块、大批量、异构的数据的整合提供坚实保障。 1.4.3.2 数据处理组件
大量的任务组件和转换组件,用户可以通过拖拽的方式快速完成各种复杂数据集成需求和集成的调度控制。提供的转换组件覆盖数据映射、数据丰富、数据计算、数据验证、数据排序、数据合并、数据拆分、数据生成、数据去重、数据分组、行列转换等复杂处理,提供的任务组件涵盖定时调度、周期循环调度等调度模式组件、以及数据处理的一些前置、后置检查操作等。 1.4.3.3 数据抽取模式
支持各种数据抽取模式,如全量同步、增量同步CDC(基于触发器、基于时间戳、全表比对、基于数据库日志分析)、单向同步、双向同步、文件目录同步等。
基于数据库日志分析的增量抽取支持数据库:Oracle,SqlServer2008,Mysql5。
1.4.3.4 图形化操作
通过大量组件和可视化图形界面,使用人员无需编码,既可以灵活、方便地定制出各种数据集成流程,又能够减少手工代码的错误,还可以利用调试预览及时发现潜在错误,提升集成质量,并能对ETL服务器和资源库进行管理,全面提高集成速度。
1.4.3.5 高效数据处理
采用异步并行处理的方式实现数据的高效处理,每经过一个组件就被加工成一个既定格式的中间状态。数据经过一个组件的处理后被迅速交给下一个组件处理,同时当前的组件已经开始处理新的数据。
提供集群部署方式,允许将转换或转换中的比较耗时的数据处理组件部署在多台服务器上并发执行,从而将转换的工作分摊到多台服务器上,提高数据处理效率。
1.4.3.6 异常恢复和数据一致性
任务流程提供多个调度机制和异常恢复机制,在异常后,支持自动和手动恢复。异常恢复可以保证恢复的流程从异常点开始重新同步,保证数据的最终完整性和一致性。 1.4.3.7 监控管理
提供基于JS+REST技术规范的前端界面和后台数据提供相分离的统一管理平台,界面风格符合扁平化设计潮流。
提供对分布式网络环境中部署的服务器运行实例集中统一管理,包括对服务器、流程的运行状态、运行日志、执行性能的查看,以及远程的启动、停止、暂停、恢复等管理操作,支持统一的权限管理配置、错误告警等功能。
提供插件管理机制,方便用户安装、卸载已有的功能插件,允许用户自定义自己的功能插件,并集成到统一管理平台中。提供自定义面板功能,方便用户在一个视图中集中展示自己关注的内容。
提供Java、HTTP、REST等多种封装形式的监控管理接口,方便用户快速将监控管理功能集成到自己的平台中。 1.4.3.8 插件式组件管理和可扩展性
提供插件式的组件管理机制,对于特殊的场景,可以方便的进行扩展开发,如客户自定义结构的文本进行转换组件的定制开发、专有的应用系统进行适配器的定制开发等,并以插件的方式集成使用。
1.5 大数据处理 1.5.1
实时数据流处理
实时性是数据处理的关键也是其价值得以实现的基础。如流的实时监控、拥堵状况的实时信息、诱导等应用均要求系统能够返回当前的状态;在另一些场景则需要进行连续监控,在技术上涉及连续查询。这方面的功能需求已在第二节讲述。在构建大数据处理平台中,实时数据流处理子系统是关键系统之一。该系统中涉及的关键技术包括:高速数据转换,将获取的事件数据流由随机访问格式转换为分布式并行分析格式,将几分钟前获取的数据即时处理呈现最新分析结果;灵活的资源分配方案,不同类型的数据处理组件(即事件处理服务)与可伸缩分布式键值存储灵活连接,可以便捷地构造新的服务而不影响现有系统的运行;基于滑动窗口的连续计算技术;自适应负载平衡与资源分配优化。
实时流数据处理基于流计算框架为平台提供一个分布式的、容错的实时计算系统,用于对接收的数据进行实时计算,例如支持车辆实时位置计算、车辆按行政区划分级聚合(到地区级)、实时车辆查找、区域车辆异常聚集、相关运营指标实时计算等业务。实时流数据处理提供简化编程模型支持、容错、水平扩展、可靠消息处理等功能。 1.5.2
数据挖掘分析引擎
数据挖掘分析是对清洗后的数据,运用数学算法,对其进行数据运行,并把运算后的结果模型保存起来,供业务程序的调用。
支持多种数据挖掘算法分析,可以生成分类、聚集、回归模型,适应在多种行业的机器学习场景提供挖掘分析功能。
多种分布式机器学习、智能挖掘、统计分析计算框架
丰富的、功能齐全的行业分析数据模型,譬如分类、聚集、回归等应用分
析模型。
1.6 大数据服务引擎 1.6.1
大数据配置服务管理
根据各类业务系统的需求,进行大数据配置服务,支持方便灵活的数据应用。 1.6.2
大数据在线分析
大数据在线分析分析耗时较短的业务功能提供支撑。该模块集成大数据分析算法组件,面向用户提供对业务的远程分析能力。用户通过界面提交分析的需求、参数或者是符合规约的算法,在大数据在线分析上完成大数据的搜索、分析、挖掘和运算,最终展示给用户。具体功能包括:面向海量数据的全局扫描抽取、视图展示、信息挖掘与关联分析、实时数据融合。在技术上使用Spark快速数据处理框架实现。
在线分析系统主要是面向海量数据的全局扫描抽取、视图展示、信息挖掘与关联分析、实时数据融合等分析工作。
Spark SQL 可以实现度统计分析。 Spark Mlib 可以实现信息发掘和关联分析。
Spark on Yarn启动后,由Spark AppMaster把Receiver作为一个Task提交给某一个Spark Executor;Receive启动后输入数据,生成数据块,然后通知Spark AppMaster;Spark AppMaster会根据数据块生成相应的Job,并把Job的Task提交给空闲Spark Executor 执行。图中蓝色的粗箭头显示被处理的数据流,输入数据流可以是磁盘、网络和HDFS等,输出可以是HDFS,数据库等。Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据。
Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解,以及Spark的任务集的调度过程。对于目前版本的Spark Streaming而言,其最小的Batch Size的选取在0.5~2秒钟之间(Storm目前最小的延迟是100ms左右),所以Spark Streaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。 1.6.3
大数据离线分析
本子系统基于HDFS的分布式存储技术、Hadoop MapReduce并行计算技术,是支持大数据分析系统高效检索和快速处理的基础,例如可以对车辆订单和轨迹序列进行多要素、多层次、多时次、多范围检索分析和计算;针对跨年度、跨区域的大规模车辆轨迹等历史数据进行离线分析,并能够对统计结果进行在线展示和下载。大数据离线分析提供数据查询系统、行业管理相关功能提供底层数据和计算的支持。
大数据离线分析的技术架构图如下:
MapReduce设计上具有以下主要的技术特征
(1) 向“外”横向扩展,而非向“上”纵向扩展
即MapReduce集群的构建完全选用价格便宜、易于扩展的低端商用服务器。
(2) 失效被认为是常态
MapReduce并行计算软件框架使用了多种有效的错误检测和恢复机制,如节点自动重 启技术,使集群和计算框架具有对付节点失效的健壮性,能有效处理失效节点的检测和恢复。
(3) 把处理向数据迁移
为了减少大规模数据并行计算系统中的数据通信开销,代之以把数据传送到处理节点(数据向处理器或代码迁移),应当考虑将处理向数据靠拢和迁移。MapReduce采用了数据/代码互定位的技术方法,计算节点将首先尽量负责计算其
本地存储的数据,以发挥数据本地化特点,仅当节点无法处理本地数据时,再采用就近原则寻找其他可用计算节点,并把数据传送到该可用计算节点。
(4) 顺序处理数据、避免随机访问数据
为了实现面向大数据集批处理的高吞吐量的并行处理,MapReduce可以利用集群中的大量数据存储节点同时访问数据,以此利用分布集群中大量节点上的磁盘集合提供高带宽的数据访问和传输。
(5) 为应用开发者隐藏系统层细节
MapReduce提供了一种抽象机制将程序员与系统层细节隔离开来,程序员仅需描述需要计算什么(What to compute),而具体怎么去计算(How to compute)就交由系统的执行框架处理。
(6) 平滑无缝的可扩展性
这里指出的可扩展性主要包括两层意义上的扩展性:数据扩展和系统规模扩展性。
① 使用MapReduce进行分析,首先能解决维度难以改变的问题,利用
HDFS中数据非结构化的特征,采集来的数据本身就是包含大量冗余信息的。同时也可以将大量冗余的维度信息整合到事实表中,这样可以在冗余维度下灵活地改变问题分析的角度。
② 利用MapReduce强大的并行化处理能力,无论OLAP分析中的维度增加多
少,开销并不显著增长。换言之,Hadoop可以支持一个巨大无比的Cube, 包含了无数你想到或者想不到的维度,而且每次分析,都可以支持成千上百个维度,并不会显著影响分析的性能。
对于很多计算问题,基于MapReduce的计算性能可随节点数目增长保持近似于线性的增长。
1.6.4 大数据可视化管理
数据可视化是将统计分析结果以报表、图表、及位置数据的地图显示方式(如折线图、直方图、用散点图等)进行可视化表达。包括统计分析结果可视化显示和可视化配置。可视化显示:包括对数据的统计分析结果的报表展示、图形化展示,以及在线对比。可视化配置:本模块根据用户需求可视化显示各类数据和产品,用户输入所需的数据信息如数据生成时间、数据类型等,获得符合条件的数据列表,并根据需要进行可视化显示。基于地图的位置相关信息与属性的显示。
数据可视化管理子系统可以通过多种方法来实现,比如多角度展示数据、聚焦大量数据中的动态变化,以及筛选信息(包括动态问询筛选,星图展示,和紧密耦合)等。以下一些可视化方法是按照不同的数据类型(大规模体数据、变化数据和动态数据)来进行分析和分类的:
(1) 树状图式:基于分层数据的空间填充可视化方法。
(2) 圆形填充式:树状图式的直接替代。它使用圆形作为原始形状,
并能从更高级的分层结构中引入更多的圆形。
(3) 旭日型:在树状图可视化基础上转换到极坐标系统。其中的可变
参量由宽和高变成半径和弧长。
(4) 平行坐标式:通过可视化分析,将不同维度的多重数据因素拓展
开来。
(5) 蒸汽图式:堆叠区域图的一种,数据围绕一条中轴线展开,并伴
随流动及有机形态。
循环网络图式:数据围绕一个圆形排列,并按照它们自身的相关性比率由曲线相互连接。通常用不同的线宽或色彩饱和度测量数据对象的相关性。
1.7 大数据全文检索
大数据平台,提供数据全文检索功能,需满足检索响应快、实时性等要求。 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。Solr是一个的企业级搜索应用服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。 1.8 调度与业务监控
大数据平台中大量的业务统计分析是基于大数据的分布式处理框架,在该框架上需要提供一套针对各流程和任务的管理、调度服务及系统运行环境的监控告警功能,以保障平台的长期稳定运行。主要功能包括:
(1)任务管理
包含任务的创建、任务的中断、过期任务的清理、任务执行历史的记录。 (2)调度服务
根据任务执行安排,进行相应的调度执行。调度触发条件为时间或事件。 (3)监控告警
监控任务执行单元执行情况,并记录下来。 (4)运行资源监控
实时收集任务占用的资源,并记录下来。 (5)数据资源监控
通过收集系统处理数据的日志,并归集起来。 (6)数据质量监控
根据收集的数据,设计相关阈值告警。
1.9 资源与安全
多租户技术(multi-tenancy technology)是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。在大数据环境下实现多租户涉及如下关键技术:
(1)资源池
资源池(pool),或者作业池。 每个pool里有一定量的资源(管理员配置),每个用户属于某个pool,其提交的作业可使用这个pool中的资源。资源的分配主要是依据CPU虚拟核数和内存量。
(2)公平调度
是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务空闲时间片赋给这些新的作业,以使得每一个作业都大概获取到等量的CPU时间
(3)Kerberos
Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。
(4)Sentry
Sentry是一个授权模块,为了对正确的用户和应用程序提供精确的访问级别,包括一个核心授权提供者和一个结合层。可以实现对分布式数据库细粒度级、基于角色的授权。 1.9.1
租户管理
创建及管理租户基本信息并为租户分配计算资源和存储资源,为租户分配相应的权限模型。监控租户资源的使用情况包括当前cpu、内存资源的使用以及历史使用情况,存储资源的占用及空闲情况,租户下运行作业情况等。
1.9.2 资源分配
基于cpu和内存为粒度设计资源池,为资源池配置独占资源量、共享资源量、抢占时间、资源权重等参数。监控整个平台各资源池的使用情况,动态调整资源配置以达到充分利用大数据平台能力。 1.9.3
权限管理
针对数据仓库表、数据库表、文件系统中的文件及目录操作、计算作业提交配置相应的权限模型,分配模型给对应的租户使其针对不同对象具有创建、修改、查询等不同权限。 1.10 接口封装
对大数据平台中提供的功能进行封装,对外提供统一的接口,外部应用以及上层平台不再各自操作不同组件,形成大数据应用混乱存在的局面,支持大数据服务平台、共享交换平台等的功能。
其中对分布式文件系统中文件的操作封装为文件操作接口,服务与FTP服务共存的服务;将数据仓库工具、分布式数据的查询、汇总功能封装为数据查询接口,支撑上层业务应用;将分布式计算框架、迭代计算框架、流计算任务的提交、启动、停止等操作封装为计算任务提交接口,方便运维人员对计算任务的监控和管理;将获取大数据平台资源情况的功能封装为监控信息获取接口,方便大数据服务平台获取基础平台中的资源使用情况等。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务