本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除
1. 数据中台建设方案
1.1. 总体建设方案
通过对客户大数据应用平台服务需求的理解,根据建设目标、设计原则的多方面考虑,建议采用星环科技Transwarp Data Hub(TDH)大数据基础平台的架构方案,基于Transwarp Operating System(简称TOS)云平台方式部署构建。
通过建立大数据集成平台、大数据计算平台、大数据开发平台及大数据运维平台来满足客户大数据应用平台服务建设的要求。
1.1.1. 大数据平台-TDH
星环大数据平台Transwarp Data Hub(简称TDH)基于开源Spark技术,从查询引擎、计算框架、存储引擎和资源调度等方面做了性能的优化,相较于同类产品,提供更好的性能。改进的分布式计算引擎Inceptor,解决了开源Spark的稳定性问题,并且已经在众多成功案例中经历了的考验。同时Ipcetor大幅提高Spark计算性能,是开源的2-10倍。TDH Inceptor极大提高了Spark功能和性能的稳定性,可以7*24小时在企业的生产环境运行,并能在TB级规模数据上高效进行各种稳定的统计分析。
星环大数据平台TDH采用基于Hadoop的数据平台架构,海量数据查询分析服务集群既可以处理结构化的数据,也可以处理非结构化、半结构化的数据,满足配置、日志、网页、音视频、社交网络等多源异构数据的加载和存储,提供数据查询、全文检索、数据离线批处理分析、交互式分析、图分析、数据挖掘、机器学习等多种数据处理模式。同时,基于平台提供的实时流处理集群,可以满足实时数据研判分析服务的需求。整个平台提供完整的多租户功能,对于计算资源与存储资源以及数据访问资源进行统一控制管理,对于计算资源进行高效的调度管理与使用控制;对于存储资源进行配额管理;对于数据访问权限,进行严格的权限管理。在安装、配置、监控、告警方面,通过统一的Transwarp Manager进行运维管理。
星环大数据平台TDH应用范围覆盖各种规模和不同数据量的企业,通过内存计算、高效索引、执行优化和高度容错的技术,使得一个平台能够处理10GB到100PB的数据,并且在每个数量级上,都能比现有技术提供更快的性能;企业客户不再需要混合架构,TDH可以伴随企业客户的数据增长,动态不停机扩容,避免MPP或混合架构数据迁移的棘手问题。
1.1.2. 云操作系统-TOS
星环云操作系统Transwarp Operating System(简称TOS)是为大数据应用量身订做的云操作系统,基于Docker和Kubernetes开发。TOS支持一键部署TDH,基于优先级的抢占式资源调度和细粒度资源分配,让大数据应用轻松拥抱云服务。
未来企业对于构建统一的企业大数据平台(Data Hub)来驱动各种业务具有强烈需求,统一的企业大数据平台需要提供以下功能:
l 资源弹性共享—提高资源利用率
灵活部署:支持灵活部署大数据应用和其他常规应用
资源调度:具备自动扩容和自动修复功能
服务发现:具备集中式的仓库
l 隔离性—保障服务质量和安全性
数据隔离:包括数据源、访问模式等
计算隔离:隔离CPU、内存、网络、磁盘IO等
TOS满足了以上企业大数据平台的需要,支持对TDH的一键式部署、扩容、缩容,同时也允许其他服务和大数据服务共享集群,从而提高资源的使用率。TOS创新的抢占式资源调度模型能在保障实时业务的同时,提高集群空闲时的资源占用,让批量作业和实时业务在互不干扰的情况下分时共享计算资源。
另外,在TOS上运行的TDH还引入微服务的架构,显著地降低了用户部署环境对TDH稳定性的影响,提高了部署的可用性,并且能让用户在不停机的前提下,享受到将来更新版本的升级以及修复。
TOS由以下几个部分组成:
容器层
容器层主要包含一系列的容器—docker container。Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在测试机上编译测试通过的容器可以批量地在生产环境中部署。
Docker容器通过Docker镜像来创建,容器与镜像的关系类似于面向对象编程中的对象与类。每个容器分配了一定的计算及存储资源,可以运行各自的应用程序。通过将应用服务装载在Docker容器中,能够实现应用环境和底层环境的解耦合,容器间相互隔离互不影响。
调度模块
基于Kurbernetes开发,包含多种调度模块,以及相应的调度策略。支持对CPU、内存的调度,内嵌了FIFO调度、公平调度等常规的调度策略。额外的,基于Docker容器能够快速启动的特点,TOS还包含了抢占式的优先级调度策略,通过设计不同的优先级,优先级高的容器能够抢占优先级低容器的资源启动。
系统服务层
系统服务层包含了容器正常运行所需的系统服务,如服务etcd、name service等,该层用于支持平台的容器化。
集中式服务仓库
类似于Maven的集中仓库,TOS也自带了一个集中式的应用服务仓库。用户需要启动一个已存在于仓库中的应用时,只需要将该应用的Docker image拉下来启动即可。
仓库预置了常用的应用服务,如完整Docker化的Transwarp Data Hub各个组件和Tomcat、MySQL等常用服务。如果用户想要使用其他应用服务,也可以通过TOS提供的接口,在测试环境将应用服务制作为DockerImage,上传至TOSmarket,即可在生产环境下载并使用。
基于分布式容器集群管理系统(TOS)构建的服务器虚拟化资源池,可为大数据平台系统的各类应用、分布式计算和存储服务组件提供多租户隔离的容器资源调配管理、应用打包部署及SLA管理、作业调度管理以及统一运维监控管理。
该系统具备以下优势:
l 便捷部署
基于TOS,用户可以通过Web UI、REST API或者命令行一键瞬间安装和部署TDH集群,能自动根据服务的依赖性安装所需的其他服务组件。在虚拟技术之前,部署硬件资源满足新的应用需求需要几天时间,通过虚拟化技术把这个时间降到了分钟级别,而目前基于Docker的TOS云平台把时间降到了秒级别。Docker作为装载进程的容器,不必重新启动操作系统,几秒内能关闭,可以在数据中心创建或销毁,没有额外消耗。典型的数据中心利用率是30%,通过更积极的资源分配,以低成本方式对新的实例实现更合理的资源分配,从而提高数据中心的利用效率。
l 完整的资源隔离
TOS通过优化Kubernetes资源管理框架实现了基于Docker容器对CPU、内存、硬盘和网络更好的隔离。TOS中Docker容器的隔离目前是由Linux内核提供的六项隔离,包括主机名与域名的隔离,信号量、消息队列和共享内存的隔离,进程编号的隔离,网络设备、网络栈、端口的隔离,挂载点(文件系统)的隔离,用户和用户组的隔离。这些隔离保证了不同容器的运行环境是基本不受影响的,比如挂载点的隔离,就保证了一个容器中的进程不能随意访问另外一个容器中的文件。
TOS平台相比于传统的Apache Yarn管理框架和开源Kubernetes的资源管理框架而言,在资源粒度方面可以管控磁盘和网络,而传统资源调度框架只能管理到CPU和内存;在隔离性方面,容器技术有天然的优势;在依赖性和通用性方面,不依赖于Hadoop组件以及技术,这意味着可以实现所有上层应用的云化开发、测试、升级以及管理调度。
l 灵活资源调度
TOS支持对TDH组件自动扩容或者缩容,同时也允许其他应用服务和大数据服务共享集群,从而提高资源的使用率。TOS创新的支持抢占式资源调度模型,能在保障实时业务的同时,提高集群空闲时的资源占用,让批量作业和实时业务在互不干扰的情况下分时共享计算资源。通过支持动态扩容和收缩集群,从何实现了资源的动态分配与调度,整个过程热插拔业务、服务无需重启。
l 自动修复
TOS的Replicator模块负责检测集群规模,当集群中服务发生问题时可以另起一个服务实例实现集群的自我修复功能。举例而言,某个HyperbaseRegionServer由于硬件原因服务停止,TOS平台能够实时感知,并在管理的资源范围内另起一个Region Server的Docker容器接替因故停止的容器,动态的保证了服务集群的整体稳定性。
l 应用隔离
在TOS上运行的TDH以及应用服务还引入微服务的架构,显著降低用户部署环境对TDH以及应用服务稳定性的影响,提高了部署的可用性,并且能让用户在一定程度上不停止业务以及服务的前提下,进行快捷的TDH以及应用服务更新版本滚动升级。
1.1.3. 大数据平台产品优势
1.1.3.1. 完整的SQL支持
星环大数据平台支持完整的SQL 99标准和SQL 2003核心扩展,可以运行TPC-DS标准测试集的全部99个测试项;
唯一支持存储过程的SQL on Hadoop引擎;兼容98%以上的Oracle PL/SQL 与80%以上的DB2 SQL PL语法 支持存储过程、函数、控制流、游标、异常处理等各类语法。
唯一支持ACID分布式事务的大数据SQL引擎;定位数据仓库和数据集市市场,可用于补充或替代Oracle、DB2等分析用数据仓库。
TDH提供ANSI SQL2003语法支持以及PL/SQL过程语言扩展,并且可以自动识别HiveQL、SQL2003和PL/SQL语法,在保持跟Hive兼容的同时提供更强大的SQL支持。支持标准的SQL形式访问数据。TDH更完整的SQL支持使得用户能将原有数据分析应用方便地迁移到Transwarp大数据平台,同时又能处理更大的数据量。
为了降低开发流应用程序的难度,TDH还支持Stream SQL标准,其中包含流扩展后的SQL 99。因此,开发者可以在TDH上直接使用SQL而不是通过各种API来编写流计算程序,也不需要考虑任何打包或部署工作。为了更好的提供全文搜索服务,TDH中的Search也支持SQL的检索扩展语法(兼容Oracle标准)。由于支持标准的JDBC 4.0和ODBC 3.5,TDH可以兼容主流的数据库软件和中间件。
1.1.1.1.1. 内存/SSD/磁盘混合存储加速
交互式分析是指用户期待秒级的分析响应。为支持在线事务处理、交互式分析、近实时挖掘,或针对操作型数据直接进行复杂、即席的分析性应用需求,传统数据集市、数据仓库等均针对预先定义的分析服务类型进行预先计算。将原始数据做抽取、转换、加载,最后生成物化视图,实现相关分析;同时周期性检查数据存储中的增量数据,优化分析结果,因而无法满足实时、即席的复杂分析要求。此外,数据存储模式的变化,数据量激增之后,传统的在线分析的局限性越来越明显,如数据存取性能下降,连接处理复杂化等。
为了加速交互式分析的速度,Inceptor推出了基于内存或者SSD的列式存储引擎Holodesk。Holodesk将数据在内存或者SSD中做列式存储,辅以基于内存的执行引擎,可以完全避免IO带来的延时,极大的提高数据扫描速度。除了列式存储加快统计分析速度,Holodesk支持为数据字段构建分布式索引。通过智能索引技术为查询构建最佳查询方案,Inceptor可以将SQL查询延时降低到秒级。
Inceptor中Holodesk支持跨内存/闪存介质的分布式混合列式存储,可用于缓存数据供Spark高速访问。Holodesk利用SSD的高IOPS特性进行针对性的存储结构优化,通过列式存储,内置索引等技术,使得在SSD上分析性能比纯内存缓存相差在10%~20%范围左右,提供性能接近的交互式SQL分析能力。由于内存的价格是SSD的近10倍,因此可以采用SSD来替代内存作为缓存,一方面可以增大分布式内存数据库Holodesk存储容量,另一方面可以降低成本,同时性能没有明显损失。
Inceptor可以通过SQL将数据从Hyperbase/HBase以及HDFS上装载入Inceptor分布式内存列式存储Holodesk,星环的Inceptor支持对海量数据的交互式数据分析,具备在秒级扫描分析数十亿条数据的能力。未来可以对不同业务部门开放交互式分析能力,提供现有数据仓库不能满足的交互式内存分析能力。
Holodesk允许用户对多字段组合构建OLAP-Cube,并将cube直接存储于内存或者SSD上,无需额外的BI工具来构建Cube,因此对于一些复杂的统计分析和报表交互查询,Holodesk能够实现秒级的反应。除了性能优势,Holodesk在可用性方面也表现出色。Holodesk的元数据和存储都原生支持高可用性,通过一致性协议和多版本来支持异常处理和灾难恢复。在异常情况下,Holodesk能够自动恢复重建所有的表信息和数据,无需手工恢复,从而减少开发与运维的成本,保证系统的稳定性。
平台支持基于内存或者固态硬盘高IO特性优化的列式存储,避免IO带来的延时以提高数据扫描速度。
Holodesk星环自主研发用于应对海量数据OLAP高性能分析查询难题的一款产品,它是跨内存/闪存/磁盘等介质的分布式混合列式存储,常用于缓存数据供Inceptor高速访问。Holodesk内建索引,结合Inceptor计算引擎可提供比开源Spark更高的交互式统计性能,可以达到秒级灵活分析数亿条记录的性能;结合使用低成本的内存/闪存混合存储方案,可接近全内存存储的分析性能。
它着力于交互式分析中即时查询效率的提高且能够保证扩展性与稳定性。Transwarp Holodesk 通过 Zookeeper 来管理元数据,从而避免因为单点故障而导致的数据丢失,数据checkpoint 在 HDFS 中。服务在故障恢复之后,Holodesk 能够通过Zookeeper 中的信息自动重建数据与索引,因此有很高的可靠性。
1.1.1.1.2. 全局索引
平台可以采用全局索引,快速找到精确查询的记录,索引采用分桶技术,加快寻找索引速度,快速精确定位数据。
Holodesk通过创建全局索引,优化底层存储,对于过滤率较高的情况有很好的优化效应。Holodesk提供了表组织成桶的优化方式,通过分桶技术可以做到:
1) 有助于取样
取样是从所有数据随机的抽取一部分样本。当数据极多时,不方便使用全部的数据验证系统功能,这时需要使用样本数据进行测试。表若被分桶,每个桶的内容是对数据的离散后的结果,满足对于样本的要求,所以取样时可以直接抽取任意一桶的全部数据作为样本。
2) 减少操作量,提高查询速率
条件过滤时,如果过滤字段和分桶字段一致,可根据哈希结果直接知道该记录所在的相关分桶编号,只在这些分桶查找满足条件的记录,而不用搜索所有的文件,有很高的查询效率。
3) 减少Shuffle数据量
分桶操作使得如GROUP BY以及特定场景下的JOIN(多个JOIN表分桶个数相同)能够在一个Stage中完成,避免了Shuffle过程。例如,有两张表对Join Key的列分桶,现对这两张表做JOIN,由于两个表相同列值的记录都在对应表的同一个编号bucket中,因为Inceptor实现了同一个编号的bucket在同一个节点上的co-location的特性,所以可以直接在一个Stage实现JOIN,而不用Shuffle。
1.1.1.1.3. 局部索引
平台支持在分布式内存列式存储上建立局部索引,提供OLAP能力,为大表创建索引,支持多维数据灵活分析,无需预先物化计算。
索引和Cube的建立会提升在高过滤和高聚合率的情况下的查询速率和效率,并且使得以更直观地方式从多维度多层面研究数据。Holodesk的索引是将列式存储的每个单元看作整体建立的。索引的创建采用了字典编码技术(Dictionary Encoding)。相对于通过遍历每一条记录进行条件过滤的手段,使用索引大幅度缩短了过滤时间。可以根据需求,选择对一个字段或多个字段创建索引,Holodesk的索引支持所有数据类型。
1.1.1.1. TDH资源调度优化
星环科技的大数据平台通过细粒度的资源调度优化,充分利用物力资源,是的单位时间内能够满负荷地运行任务,面对高并发ETL或者交互式分析的场景,有非常出色的处理能力。
1.1.1.1.1. 计算资源管理
Transwarp Yarn支持同时对计算资源(CPU核心)和内存资源的管理能力,Yarn和分布式存储在同一个物理集群中,达到分布式计算中数据优先本地化计算的目的,避免计算过程中数据需要全部从网络获取。在申请资源配额后,如果当前用户的资源紧张或受限,还可以动态调配其他用户的闲置资源加入,当其他用户使用时再归还。TDH大数据平台基于YARN的资源调度框架,启动Spark和Map/Reduce计算集群,按需动态创建与销毁计算集群。
1.1.1.1.2. 长期占用资源管理
TDH平台在一个Inceptor/Spark计算集群内部同样能实现计算资源在不同资源池(Pool)的共享与隔离,通过公平调度算法保证高优先级的Pool优先拿到闲置资源,同时每个Pool具有指定的资源保有量,避免高负载批处理业务占用全部计算资源。同时,这种机制也能支持服务类的业务长期占用一定量的资源。
1.1.1.1.3. 资源分配与回收
在Transwarp Yarn上,可以非常方便的动态创建和销毁Spark或者Map/Reduce集群。对于用户提交的MapReduce以及Spark作业以及Inceptor集群,需要提交到其有权限的队列中,向Yarn申请资源,当用户当集群中节点上有足够的资源满足作业中task的要求并且没有达到该用户资源使用上线时,Yarn中将这部分CPU和内存资源封装成container,提供给task运行;如果剩余的资源量不足以满足计算所申请的资源,则任务需要排队。作业任务运行完成后动态销毁,释放占用的CPU与内存资源。因此,对于平台分析应用,可以充分使用Transwarp Yarn的特性,实现分析集群的按需创建与销毁,从而帮助实现资源、计算能力的统一调度和规划。
篇幅有限,无法完全展示,喜欢资料可转发+评论,私信了解更多信息。