《集团大数据平台建设项目系统功能设计方案.doc》由会员分享,可在线阅读,更多相关《集团大数据平台建设项目系统功能设计方案.doc(158页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、集团大数据平台建设项目系统功能设计方案1.1 概述图5-1系统功能设计内容参见上图,系统功能设计主要包括:平台管理(多租户管理、多应用管理、作业调度管理、统一运维监控)、数据管理(结构化数据管理、半/非结构化结构数据管理、数据采集、数据交换、数据存储管理、数据加工清洗、数据计算、数据查询)、数据管控(元数据、主数据管理、数据质量管理)、数据ETL、数据分析与挖掘、数据展现等。1.2 平台管理功能1.2.1 多应用管理星环Transwarp Data Hub大数据平台对企业级用户提供多应用场景的支持,例如:通过Transwarp Stream提供实时数据计算场景支持,通过Transwarp In
2、ceptor提供批处理场景支持,通过Transwarp Hyperbase提供在线数据服务场景支持,通过Transwarp Discover提供数据分析、挖掘场景支持。星环大数据平台通过Transwarp Operating System云平台系统(以下简称TOS)实现大数据平台多应用管理,支持对应用的服务级别管理(SLA),实现应用的访问资源控制,支持资源隔离。TOS基于Docker容器技术,支持一键部署TDH各个组件,支持优先级的抢占式资源调度和细粒度资源分配,让大数据应用轻松拥抱云服务,满足企业对于构建统一的企业大数据平台来驱动各种业务的强烈需求。TOS主要由4部分组成,底层由基于Doc
3、ker的容器技术作为所有应用服务的承载,通过将应用服务装载在Docker容器中,能够实现应用环境和底层环境的解耦合;通过优化过的Kurbernetes对整个集群的资源进行管理与调度;在此之上,内置了丰富的系统级服务应用,如完整Docker化的Transwarp Data Hub集群各个组件等;对于其他应用服务的接入,提供了完整的Docker Images Repository集中服务管理库,用户可以通过TOS提供的接口,将应用服务制作为Docker Image,加载入TOS Repository,通过定义调度规则,在TOS统一管理与调度。图5-2大数据云平台架构图便捷部署:基于TOS,用户可以
4、通过Web UI、REST API或者命令行一键瞬间安装和部署TDH集群,能自动根据服务的依赖性安装所需的其他服务组件。在虚拟技术之前,部署硬件资源满足新的应用需求需要几天时间,通过虚拟化技术把这个时间降到了分钟级别,而目前基于Docker的TOS云平台把时间降到了秒级别。Docker作为装载进程的容器,不必重新启动操作系统,几秒内能关闭,可以在数据中心创建或销毁,没有额外消耗。典型的数据中心利用率是30%,通过更积极的资源分配,以低成本方式对新的实例实现更合理的资源分配,从而提高数据中心的利用效率。完整的资源隔离:TOS通过优化Kubernetes资源管理框架实现了基于Docker容器对CP
5、U,内存,硬盘和网络更好的隔离。TOS中Docker容器的隔离目前是由Linux内核提供的六项隔离,包括主机名与域名的隔离,信号量、消息队列和共享内存的隔离,进程编号的隔离,网络设备、网络栈、端口的隔离,挂载点(文件系统)的隔离,用户和用户组的隔离。这些隔离保证了不同容器的运行环境是基本不受影响的,比如挂载点的隔离,就保证了一个容器中的进程不能随意访问另外一个容器中的文件。TOS平台相比于传统的Apache Yarn管理框架和开源Kubernetes的资源管理框架而言,在资源粒度方面可以管控磁盘和网络,而传统资源调度框架只能管理到CPU和内存;在隔离性方面,容器技术有天然的优势;在依赖性和通用
6、性方面,不依赖于Hadoop组件以及技术,这意味着可以实现所有上层应用的云化开发、测试、升级以及管理调度。容器的隔离目前是由Linux内核提供的六项隔离,包括主机名与域名的隔离,信号量、消息队列和共享内存的隔离,进程编号的隔离,网络设备、网络栈、端口的隔离,挂载点(文件系统)的隔离,用户和用户组的隔离。这些隔离保证了不同容器的运行环境是基本不受影响的,比如挂载点的隔离,就保证了一个容器中的进程不能随意访问另外一个容器中的文件。表5-1 Yarn管理 资源粒度隔离程度依赖性通用性YARNCPU/MEM进程级别、不精确依赖某个HDFS支持少量计算引擎KubernetesCPU/MEMContain
7、er不依赖Hadoop支持通用Linux负载TOSCPU/MEM,DISK,NETWORKContainer+Quota+VLAN不依赖Hadoop支持大数据及通用应用灵活资源调度:TOS支持对TDH组件自动扩容或者缩容,同时也允许其他应用服务和大数据服务共享集群,从而提高资源的使用率。TOS创新的支持抢占式资源调度模型,能在保障实时业务的同时,提高集群空闲时的资源占用,让批量作业和实时业务在互不干扰的情况下分时共享计算资源。通过支持动态扩容和收缩集群,从何实现了资源的动态分配与调度,整个过程热插拔业务、服务无需重启。自动修复:TOS的Replicator模块负责检测集群规模,当集群中服务发生
8、问题时可以另起一个服务实例实现集群的自我修复功能。举例而言,某个Hyperbase Region Server由于硬件原因服务停止,TOS平台能够实时感知,并在管理的资源范围内另起一个Region Server的Docker容器接替因故停止的容器,动态的保证了服务集群的整体稳定性。应用隔离:在TOS上运行的TDH以及应用服务还引入微服务的架构,显著降低用户部署环境对TDH以及应用服务稳定性的影响,提高了部署的可用性,并且能让用户在不停业务以及服务的前提下,享受到快捷的TDH以及应用服务更新版本滚动升级。1.2.2 多租户管理对于各个部门以及下级单位的不同应用需求,通过统一的集群管理,结合星环的
9、YARN资源调度框架,可以动态创建和销毁集群,灵活部署业务,适合对非7x24不间断业务(例如周期性统计业务)动态部署。此外,在资源隔离方面,Transwarp YARN支持对计算资源和内存资源的管理能力,避免占用内存资源多的Spark或Map/Reduce集群之间争抢内存资源。缺省模式下集群就是创建在YARN上,可以非常方便的动态创建和销毁Spark或者Map/Reduce集群。同时,通过YARN的资源隔离和配额管理,可以避免使用同一个Map/Reduce集群时出现的计算资源争抢现象,保证每项业务都能顺利完成。与此同时,为了更好的利用平台计算资源,在申请资源配额后,如果当前用户的资源紧张或受限
10、,可以动态调配其他用户的闲置资源加入,当其他用户使用时再归还。同时,结合Kerberos实现Transwarp YARN的资源申请,作业提交以及队列使用的权限管控,管理员通过管控界面,定义YARN中用户能够在哪些队列中提交作业,能申请资源的额度以及能提交作业的最大个数等,实现计算资源的用户权限管控。因此,对于分析类应用,可以充分使用星环YARN的特性,实现分析集群的按需创建与销毁,从而实现数据、资源、计算能力的统一调度和规划。对不同的租户的操作员进行分组分类分级管理,利用Kerberos以及LDAP对租户应用授权,支持对计算资源和内存资源的管理能力,避免占用内存资源多的Spark或Map/Re
11、duce集群之间争抢内存资源,对租户的数据访问能力进行设置,实现数据隔离。1.2.3 统一运维监控本方案提供统一的运维监控服务,主要通过TOS实现,TOS的核心是Docker和Kubernetes。本方案涉及到的所有软件的部署都通过Docker打包成镜像文件,以便非常快捷的部署实施。内部系统通过镜像数据接口交互层进行交互。通过外部接口层纳入集团运维平台进行统一监控。图5-3 统一监控平台本方案提供统一的运维监控服务,主要通过TOS实现,TOS的核心是Docker和Kubernetes。本方案涉及到的所有软件的部署都通过Docker打包成镜像文件,以便非常快部署。整个架构通过Docker打包,并
12、提供服务接口,这种服务接口分为两层:1) 镜像层a) 提供接口文件b) 提供数据接口2) 外部接口层a) 提供APIb) 提供URL嵌入c) 提供数据接口d) 提供XML接口(包括定制XML,JSON等)e) ESB接口整个接口层的设计便于产品之间,系统之间的交换,也便于整个架构对接IBM Tivoli,BMC ControlM等监控平台,引入监控或者外推监控,更好的融入到整个集团集团的监控体系,便于统一监控。1.2.3.1 Hadoop集群自动化部署一站式大数据平台提供集群自动化部署服务。用户只需要安装Transwarp Manager管理平台软件,就可以在友好的图形化界面上安装、部署、配置
13、所需要的服务。整个安装过程不需要用户使用任何终端命令或者代码。图5-4 TDH节点管理界面1平台提供了强大的在线扩容功能,不需要宕机停库,不需要停止业务,就可以添加新的节点,实现扩容。节点添加完成之后可以立即对新添加的节点进行角色的分配,一旦配置成功,则新加的节点就会马上投入运算。扩容之后的数据节点也不需要停机进行数据重分布,系统自动选择空闲的时间进行数据的重新分布。同时,扩容的操作可以方便的在界面进行操作。图5-5 TDH节点管理界面21.2.3.2 Hadoop集群性能监控平台通过专门的监控服务对集群的状态进行监控,包括服务器CPU、内存、网络和磁盘的利用率和健康状态,以及分布式应用系统的
14、状态,并在故障发生或者某项指标超过预设阀值时时提供告警功能。管理员可通过浏览器访问集群的监控和管理界面进行日常的监控和维护,系统提供图标信息展示。管理员可以便捷了解到集群的计算资源是否处于空闲状态、哪些服务器的负载过高,甚至判断集群的组网及机架安排是否合理等。管理员也可通过对各个节点的各个角色的日志信息进行检索,获得更加精确的信息。图5-6 TDH监控模块平台集成Ganglia集群监控系统,能够从上千台服务器上收集系统信息,能够保障当集群规模扩展至上百台上千台服务器时,监控程序都能够高效的获取每台服务器的状态信息。Ganglia由Gmetad与Gmond组成,其中集群中每一台机器上都有一个Gm
15、ond服务进程,Gmetad收集所有节点metrics信息并在Web前端界面上展现出来。集群中的每台服务器上都运行监控守护进程,守护进程能够将这些数据的精简传递,这使得Ganglia的运行对集群的资源消耗极少。所有的指标数据都存储在一个RRD(Round Robin Database)数据库中,为了防止Gmetad频繁写磁盘造成I/O瓶颈,通过rrdcache缓存指标数据,定量写入RRD。存储资源监控,包括获取存储量、剩余存储量以及存储系统整体情况信息。通过Ganglia集群监控系统向集团运维监控平台发送监控消息,提供对接接口,实现大数据平台与集团运维监控平台的互通,实现统一监控。图5-7 T
16、DH性能监控界面运算资源监控,包括监控工作负载、CPU、内存资源、性能、组件性能(Kafka处理性能)等情况图5-8 TDH性能监控管理界面 提供全局日志和任务级日志。图5-9 TDH全局日志查看界面图5-10 TDH任务日志查看界面在故障发生时提供告警功能。图5-11 TDH告警监控界面1.2.3.3 Hadoop集群资源管理TDH提供计算任务管理和作业管理,包括作业的上传、配置、启动、停止、删除和状态查看等功能。图5-12 TDH作业管理界面图5-13 TDH作业配置管理界面存储资源管理,浏览数据、更改回收存储资源。图5-14 TDH资源管理界面在TDH平台中,资源可以从多个方面进行管理。
17、从资源管理模块YARN的层面,用户通过配置不同的Scheduler来定义不一样的资源使用策略,目前支持FIFO Scheduler、Fair Scheduler以及Capacity Scheduler,实现作业动态调整,支持对任务系统资源占用进行实时调配,改变作业调度优先级等操作。图5-15 优先级管理界面1图5-16 优先级管理界面21.2.3.4 图形界面方式多租户管理用户可以使用图形化界面来配置多租户的用户、组的权限。管理员用户可以新建、编辑用户的信息。图5-17 多租户管理界面1图5-18 多租户管理界面2管理员用户可以编辑管理组的信息。图5-19 管理员编辑界面同时,管理员用户也可以
18、编辑、维护角色的信息。图5-20 角色信息编辑界面同时用户可以可以按需创建,按需销毁计算集群,并且创建集群时只需要指定所需计算资源,无需指定具体物理机器图5-21 角色资源管理界面1图5-22 角色资源管理界面21.2.3.5 系统巡检信息收集整个系统的软硬件状态都可以方便的从图形界面中进行监控。用户可以实时的浏览集群中CPU、内存、网络与磁盘等的状态。图5-23 系统巡检界面TDH平台从各环节层次以及组件抽取巡检信息,按照管理平台的要求对其进行重新过滤和格式化整理,并最终进行日志信息入库。整个过程需实现处理的流程化及自动调度机制,以保证管理平台能够及时的获取日志数据。系统管理模块对Hadoo
19、p平台各层次所产生的日志记录进行获取并整理。其中包括访问层日志记录、应用层日志记录、数据存储层日志记录、数据获取层日志记录以及元数据管理的日志记录。提供一键式的图形化巡检工具,直观反映关键部件状态,并提供一键式的信息收集工具,收集系统日志、配置信息以便于快速定位。图5-24 信息收集界面1图5-25 信息收集界面21.2.3.6 系统性能跟踪平台提供了友好的界面,方便用户跟踪当前的任务进度与资源使用情况。用户可以通过以下页面监控正在运行的任务与已经完成任务。同时界面也非常简单明了的展示了每个查询的资源消耗。图5-26 性能跟踪界面也可以直接通过选择时间范围来查询指定的SQL。图5-27 SQL
20、任务跟踪界面1.2.3.7 与集团运维监控平台对接通过Ganglia集群监控系统向集团运维监控平台发送监控消息,提供对接接口,实现大数据平台与集团运维监控平台的互通,实现统一监控。平台通过专门的监控服务对集群的状态进行监控,包括服务器CPU、内存、网络和磁盘的利用率和健康状态,以及分布式应用系统的状态,并在故障发生或者某项指标超过预设阀值时提供告警功能。管理员可通过浏览器访问集群的监控和管理界面进行日常的监控和维护,系统提供图表信息展示。管理员可以便捷的了解到集群的计算资源是否处于空闲状态、哪些服务器的负载过高,甚至判断集群的组网及机架安排是否合理等。管理员也可通过对各个节点的各个角色的日志信
21、息进行检索,获得更加精确的信息。图5-28 TDH监控模块 平台集成Ganglia集群监控系统,能够从上千台服务器上收集系统信息,能够保障当集群规模扩展至上百台上千台服务器时,监控程序都能够高效的获取每台服务器的状态信息。Ganglia由Gmetad与Gmond组成,其中集群中每一台机器上都有一个Gmond服务进程,Gmetad收集所有节点metrics信息并在Web前端界面上展现出来。集群中的每台服务器上都运行监控守护进程,守护进程能够将这些数据的精简传递,这使得Ganglia的运行对集群的资源消耗极少。所有的指标数据都存储在一个RRD(Round Robin Database)数据库中,为
22、了防止Gmetad频繁写磁盘造成I/O瓶颈,通过rrdcache缓存指标数据,定量写入RRD。存储资源监控,包括获取存储量、剩余存储量以及存储系统整体情况信息。通过Ganglia集群监控系统向集团运维监控平台发送监控消息,提供对接接口,实现大数据平台与集团运维监控平台的互通,实现统一监控。图5-29 TDH性能管理界面运算资源监控,包括监控工作负载、CPU、内存资源、性能、组件性能(Kafka处理性能)等情况图5-30 TDH负载跟踪界面提供全局日志和任务级日志。图5-31 TDH全局日志管理界面图5-32 TDH任务日志管理界面在故障发生时提供告警功能。图5-33 TDH告警管理管理界面1.
23、2.4 作业调度管理Trinity产品充分支持集团数据服务技术方面的技术需求,数据流架构图如下:图5-34 Trinity数据流架构图Trinity提供功能完整,性能优异的ETL框架支持平台建设,针对数据的预处理,中间的转换清洗,包括写入目标时针对异常数据的捕获。整个过程由Trinity提供的调度平台,元数据管理平台提供支撑,让各部分之间紧密合作,又各司其职。针对此项目复杂的业务系统和管理,Trinity提供完善的调度功能,以更好的对各个模块进行良好调度管理,相应逻辑图如下:图5-35 Trinity调度逻辑架构图调度平台是平台的数据流核心,调度平台让相关的业务系统、处理系统按照一定的业务逻辑
24、,在客户的安排下,像流水线一样,或串行,或并行,按照一定的依赖关系,在每日,每周定时触发,依次执行。Trinity提供完善的接口和管理模块,让众多的作业管理简易高效。1.3 数据管理1.3.1 数据管理框架集团大数据平台的数据管理包含结构化、半结构化的加载和分析;在数据处理的过程中,对数据的清洗和实时监控;对于ETL的整个处理过程进行完整调度。图5-36 Trinity数据处理过程1.3.1.1 结构化数据管理框架集团大数据平台对结构化数据全部放到TDH的NoSQL数据库Hyperbase中,以提升其性能,并通过元数据管理进行统一管理。外部接口包含批量及实时接口,以便满足数据汇出、数据交换、数
25、据分析的需求。概要的管理框架包含如下方面:图5-37 结构化数据管理框架1.3.1.2 半/非结构化数据管理框架集团大数据平台对非结构化数据的处理需要根据实际的情况统一管理,按照如下原则进行处理:i. 文档分类a) 互联网获取的数据,日志文件b) 文档、扫描件、邮件等c) 图片、音频、视频ii. 处理原则a) 10M以下,属性信息及文档本身放到Hyperbase中b) 10M以上文档,属性信息存入Hyperbase中,文档用HDFS保存iii. 检索原则a) ES索引+Hyperbase索引b) ES检索c) SQL检索d) NLP客制化概要的管理框架包含如下方面:图5-38 非结构化数据管理
26、框架1.3.2 数据采集集团大数据平台的数据来源广泛,根据来源,大致分为两类:1) 内部a) 手工填报b) 流+实时数据采集c) 批量2) 外部a) 文件导入b) 网络爬虫本方案对上述两类数据都提供相应的解决方案,采集框架入下图所示:图5-39 数据采集框架通过Trinity可以实现批量,实时及文件导入,相关说明参见5.5章节,对于流数据采集,可以通过Transwarp Stream组件支持流方式,实时数据采集,具体参见8.13.10;通过ETL工具Trinity支持批量导入方式、外部数据文件导入、异构数据库导入、主动数据抽取、增量追加,具体参见5.2.4;通过公司自主开发产品iRIS进行网上
27、数据采集工作;通过WEB页面进行网上数据填报,这些WEB页面是按照填报数据的特点自动生成填报页面。iRIS设置流程如下图5-40:图5-40 iRIS流程图使用过程中,用户可以通过浏览器系统交互,业务的产生与结果的交付,通过Web操作即可。产品具备如下功能:1) 一个业务包含如下属性:a) 网址:采集分析的目标b) 关键词:用于过滤网页c) 调度类型:l 一次性调度:该业务执行一次后进入执行完毕状态,不再进行调度。该类型的调度可以细分为两种:及时性调度和定时调度l 循环调度:该业务执行一次后进入执行完毕状态,但需要循环调度,当下一次调度周期来临,则会被继续送入执行队列执行2) 用户产生业务的功
28、能需求:a) 能够添加新的关键词组,能够维护关键词组中的关键词(增删改)b) 能够添加新的网址,能够维护网址组中的网址(增删改)c) 能够从知识库中选择已经存在的网址组d) 能够从知识库中选择已经存在的关键词组e) 可以设置业务的调度计划,即手动执行与自动循环执行(手动执行和循环执行都会由调度管理器选择队列执行)3) 用户获取结果的功能需求:a) 用户登录进系统之后,能够浏览与自己相关的Job信息b) 能够在网页上查看结果集c) 能够将结果集导出为纯文本文件以上各种方式均支持不同频度、不同形态的企业内外部数据采集,可以根据具体采集内容进行灵活配置和开发。1.3.3 数据交换数据采集及交换平台整
29、体架构如下图所示,建议采用Trinity作为整个平台的采集、整合及交换平台:图5-41数据采集及交换平台整体架构架构图源系统层实现数据源管理功能,数据源包括各业务系统数据接入、互联网数据采集、合作伙伴系统数据接入、外部临时数据导入支持等各种类型。数据交换区包含接口定义和自定义组件,实现可自定义的对外数据服务接口能力和数据接口热扩展能力。本方案采用如下原则处理上述需求:i. 结构化数据a) 业务系统+外部数据b) 交换工具:Trinity工具。ii. 半结构化数据a) 内部数据+互联网等b) 交换工具:IDEADATA iRIS。iii. 非结构化数据a) 内部数据+互联网等b) 交换工具:ID
30、EADATA iRIS。数据交换区包含接口定义和自定义组件,实现可自定义的对外数据服务接口能力和数据接口热扩展能力。上述用到的所有交换工具都是可扩展,支持在线热扩展功能,支持热插拔功能。大数据平台内各存储区之间的数据交换功能为平台软件TDH本身功能,详见5.3.4,此处不赘述。1.3.4 数据存储与管理本方案建议的数据以TDH为数据存储平台,存储的格式大致分为两类:i. HDFSii. Hyperbase这两类的数据都可以实现多副本存储,以提升可靠性,并按照数据的热温冷存放在不同的介质上(内存、磁盘、SSD)。对于以Hyperbase存储的数据,可以提供多种压缩方式,以减少数据对存储介质的占用
31、,并提供多种索引方式,以便于更快的进行数据查询与分析。Hyperbase支持多种索引,包括全局索引(Global Index)、局部索引(Local Index)、高维索引(High-Dimensional Index)以及全文索引(Full-Text Index)等;结合Inceptor支持通过SQL进行复杂条件毫秒级高并发查询。在Transwarp Hyperbase中通过使用索引来加快数据的查询速度。包括三种索引:本地索引、全局索引、全文索引,支持索引的自动创建(在创建表时指定索引),也支持对已有表创建索引。索引的基本设计思想是对Transwarp Hyperbase表中的需要经常作为查
32、询条件的列建立一个映射到主数据的索引。查询时可以利用索引特性进行快速定位并返回查询结果。实验证明,通过使用索引,用户查询的响应速度可以达到原来的20100倍。Hyperbase支持全局、局部、高维索引和高级过滤器,且Transwarp Hyperbase构建了全局索引、辅助索引和全文索引,扩展了SQL语法,满足在线存储和在线业务分析系统(OLAP)的低延时需求,实现高并发低延时的OLAP查询。根据数据使用场景的不同,建议按照如下五个区域进行划分,实施决策平台这些划分的详细介绍如下:i. 数据整合平台a) 集团集团企业级的数据整合区域b) HDFS+Hyperbase存储为主c) 全生命周期数据
33、d) 冷数据,以磁盘保存为主e) 三副本保存f) 全局索引+复合索引g) 支持数据分区ii. 实施决策平台a) HDFS+Hyperbaseb) 热数据,内存存储为主,以提升性能iii. 自助分析平台a) HDFS+Hyperbaseb) 热数据,SSD+内存存储为主,以提升性能iv. 数据探索平台a) HDFS+Hyperbaseb) 温数据,SSD+内存存储为主,以提升性能v. 非结构化处理平台a) HDFS为主+Hyperbaseb) 冷数据,磁盘图5-42数据存储规划1.3.4.1 数据存储管理功能数据分区是为了访问数据时,速度更快的存储策略,针对不同的场景进行数据分区分布;为了提升海
34、量数据查询性能,提供表分区功能。Inceptor支持对表的单值分区和范围分区。 为一张表分区: 在物理上,将表中的数据按分区放在表目录下的对应子目录中,一个分区对应一个子目录;在逻辑上,分区表和未分区表没有区别。 分区在创建表时完成,也可以通过ALTER TABLE来添加或者删除。关于分区的建议,分区的目的是减少扫描成本。所以单个分区的大小和总分区数目都应该控制在合理范围内。使用多层分区带来的直接问题是总分区个数过多,因为总分区个数是所有分区键对应分区个数的乘积。所以我们建议尽量减少使用多层分区对于时间、日期一类的值,使用单值分区会导致分区过多。推荐使用范围分区(RANGE PARTITION
35、)。范围分区可以灵活控制分区的数量,并可根据数据本身的特点使得各个分区的大小也控制在合理范围内,从而使得应用性能得到保证。另外,有很多以往在Oracle系统上的应用都是采取的范围分区,对范围分区的支持也能使得原有应用程序的迁移更加简单。如果是应用场景是批量处理场景,那么为了提高批处理的速度,一般在存储逻辑上,数据会放在HDFS上,基于Master/Slave架构提供高速批处理的性能。如果是高速随机查询,那么为了提高随机查询性能,一般在存储逻辑上,会把数据放在Hyperbase上,基于HBase的架构,提供高速随机查询能力。对于非重要冷数据,一般数据会存储在磁盘内,做多个备份,也可采用Erasu
36、re Code技术实现低成本存储,如果是热门数据,比如数据集市的精准内容,一般会改造成Holodesk的格式,存储在SSD或者内存当中;1.3.4.2 数据多温度管理在大数据时代,对于海量数据应该考虑数据的分级存储方案以节约存储成本。通常,我们会把数据分为热数据,在线数据,近线数据和归档数据。不同的数据种类的应用和处理会有不同的需求。对于热数据和在线数据,更多的需要考虑应用在使用数据时的高效性,Transwarp Inceptor用Holodesk的技术来加速热数据处理。对于近线数据,由于应用存取的需求相比热数据和在线数据大大减少,主要需要保证数据存储的可靠性,并考虑如何在保证可靠性的基础上能
37、尽量减少副本以节约存储空间。热数据可以根据应用需求,将经常需要进行分析的热数据从HDFS或者Hyperbase中加载到Inceptor中的分布式内存数据列式存储Holodesk中。通过内存加速分析,在秒级别响应,对数据进行交互式探索挖掘。此外内存数据库还具备了通过R语言或者JAVA API对内存数据库中内容进行数据挖掘的能力。在内存计算数据库的存储层,通过将二维数据表缓存入独立的分布式内存(或SSD)层,回避GC问题。并通过建立自定义高效列式存储结构,减少数据传输。星环的内存数据库不仅仅可以支持数据存储在内存中,同样支持内存加SSD的混合存储架构,使得内存数据库中数据不仅能存储在内存中也能存储
38、在SSD中,并且性能不会受到太大的影响。很大程度上提升了内存数据库的容量以及整体的性价比。图5-43热数据存储冷数据冷数据可以使用Transwarp HDFS中Erasure Code功能减少副本。Erasure Code可配置策略,指定HDFS中目录,通过Raid Server监控,在指定生命周期后将指定目录下的文件降低其副本数为1,并由10个数据块生成4个冗余校验块的,将3倍存储开销降低到1.4倍,并且在数据可靠性方面,Erasure Code在14个数据块中可容忍任意4个块丢失,比3份冗余存储可容忍2份数据块丢失更可靠。冷数据可使用Erasure Code自动降低存储开销。一个典型的应用
39、场景:数据在导入HDFS后的一段时间内访问频繁,在一段时间后访问频率降低甚至正常状态下不访问。可以通过设置该数据的冷却时间,当这些数据到达冷却时间后,会自动触发降副本的进程。图5-44冷数据存储1.3.4.3 生命周期管理数据生命周期理论认为数据是有生命周期的,随着时间的推移,遵循数据访问频率变化与数据量累积变化成反比这一客观规律。因此,需要根据数据访问频率进行数据价值评估,对大量低价值信息采取低成本的数据保存手段,使数据的价值与存储的技术和管理相匹配,进而大幅降低整体数据存储成本。根据数据的这一运动规律,数据生命周期理论将数据的生命周期分为在线、近线、离线以及销毁4个阶段。 在线阶段,数据访
40、问频率较高,数据从产生开始一直在生产系统中保存,并且数据的生成和利用需要使用高速存储,并提供相应的保护措施,保障数据的高可用性。这是采用热数据的存储策略,可存储在内存或者SSD当中; 近线阶段,数据使用相对不频繁,数据并不总是有用户访问,其重要性逐渐降低。通常将数据保存在中低端存储设备中,但仍能够进行在线访问,由于处理能力有限,访问的响应时间比在线数据访问时间有所增加,而且近线数据一般不在线应用,因此,不会对业务系统产生影响。这阶段可以存储在磁盘当中。 离线阶段,数据一般是没有用户访问的,只是为了预防一些特殊事件,按规定必须长时间保留,主要考虑的是数据的海量存储。历史数据随着时间的推移在不断的
41、增加,由于这些数据对于在线系统来说没有多大的实际意义,只是作为今后的备查,因而可备份到磁带上长时间保存。采用Erasure code存储技术 销毁阶段,数据已过保存期,不再具有利用价值,可以进行销毁。这阶段,需要看客户咨询,如果存储空间足够,可以不删除销毁;或者采用Erasure code存储技术处理。1.3.4.4 多索引模式目前HBase主要应用在结构化和半结构化的大数据存储上,在逻辑上,HBase的表数据按RowKey进行字典排序,RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能
42、单纯的依靠RowKey,为了能支持多条件查询,开发者需要将所有可能作为查询条件的字段一一拼接到RowKey中,这是HBase开发中极为常见的做法,但是无论怎样设计,单一RowKey固有的局限性决定了它不可能有效的支持多条件查询。受限于单一RowKey在复杂查询上的局限性,基于二级索引(Secondary Index)的解决方案成为最受关注的研究方向。为解决这一问题,Hyperbase在索引支持上做了重大的完善和加强。Hyperbase支持多种方式的索引,如:COMBINE_INDEX和STRUCT_INDEX。COMBINE_INDEX使用一列或者多列组合生成索引,而STRUCT_INDEX对
43、STRUCT类型中的一个或多个字段生成索引。Hyperbase中的索引还可根据存储方式分为全局索引(Global Index)和局部索引(Local Index)。全局索引的索引存储与原表独立,索引本身是以一张表的形式存在(索引表)。局部索引在原表中创建一个新的列族(索引列)。Hyperbase在使用索引的时候,能智能化选择性能更高的索引支持数据查询,智能化选择索引使得用户在使用索引时更加透明和方便。使用索引的时候,支持数据在已创建索引的情况下导入数据,避免数据导入完毕后再创建索引的时间窗口。1.3.4.5 多数据副本管理TDH基于开源Spark框架设计,采用3副本存储粗略,多级存储技术中Er
44、asure Code功能可降低数据存储副本。Erasure Code可配置策略,指定HDFS中目录,通过Raid Server监控,在指定生命周期后将指定目录下的文件降低其副本数为1,并由10个数据块生成4个冗余校验块的,将3倍存储开销降低到1.4倍,并且在数据可靠性方面,Erasure Code在14个数据块中可容忍任意4个块丢失,比3份冗余存储可容忍2份数据块丢失更可靠。冷数据可使用Erasure Code自动降低存储开销。通过系统自动对数据块校验,一旦有数据丢失的情况发生,系统会自动从其他机架上复制,重新生成副本。1.3.4.6 数据平衡管理一般情况下,数据在录入集群的时候就进行负载均衡
45、,根据各个节点的情况来做数据平衡分发存放。但是如果在新增节点之后,如果想做到负载均衡则需要使用balancer的命令。对于这个命令,一般是有一个阀值,节点之间差额不超过10%,集群就是均衡的。当然,负载越平均,查询相对也较快,但是均衡的过程会耗时不少。同时,对索引表进行探测,如超过阈值,会对索引表重新分配。支持自动设置好阈值,实现数据自动平衡。同时TDH采用基于一致性Hash算法来计算数据分布的均衡状态,一旦有数据倾斜发生,自动实现数据平衡;同时对一个存储的索引进行探测,如果发生倾斜,自动分配到其他Region或者分区。1.3.4.7 在线节点管理平台提供了强大的在线水平扩展功能,不需要宕机停
46、库,不需要停止业务,就可以添加新的节点,实现在线扩展。节点添加完成之后可以立即对新添加的节点进行角色的分配,一旦配置成功,则新加的节点就会马上投入运算。实现新加入的节点并行化计算,系统性能能够随着系统服务器数目的增加平滑线性增长,(采用分布式架构,不存在分布式协调瓶颈导致性能损失的情况)扩容之后的数据节点也不需要停机进行数据重分布,采用Hash算法,系统自动选择空闲的时间进行数据的重新分布,实现数据负载均衡;在国内实现部署扩展超过900个以上的案例经验。Hyperbase支持多种数据类型,包括结构化数据、非结构化数据、半结构化数据等复杂的数据,通过Inceptor支持多种扩展函数,支持shel
47、l等,外用应用可在平台上实现脚本的运行。HDFS将文件的数据块分配信息存放在NameNode服务器之上,文件数据块的信息分布的存放在DataNode服务器上。当整个系统容量需要扩充时,只需要增加DataNode的数量,系统会自动的实时将新的服务器匹配进整体阵列之中。之后,文件的分布算法会将数据块搬迁到新的DataNode之中,不需任何系统当机维护或人工干预。通过以上实现,HDFS可以做到在不停止服务的情况下实时的加入新的服务器作为分布式文件系统的容量升级,不需要人工干预文件的重新分布。1.3.4.8 分区管理为了提升海量数据查询性能,提供表分区功能。Inceptor支持对表的单值分区和范围分区。为一张表分区: 在物理上,将表中的数据按分区放在表目录下的对应子目录中,一个分区对应一个子目录;在逻辑上,分区表和未分区表没有区别。 分区在创建表时完成,也可以通过ALTER TABLE来添加或者删除。关于分区的建议,分区的目的是减少扫描成本。所以单个分区的大小和总分区数目都应该控制在合理范围内。使用多层分区带来的直接问题是总分区个数过多,因为总分区个数是所有分区键对应分区个数的乘积。所以我们建议尽量减少使用多层分区对于时间、日期一类的值,使用单值分区会导致分区过多。推荐使用范
限制150内