华为FusionInsight HD 651 技术白皮书 01.docx
- 文档编号:6084576
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:53
- 大小:1.36MB
华为FusionInsight HD 651 技术白皮书 01.docx
《华为FusionInsight HD 651 技术白皮书 01.docx》由会员分享,可在线阅读,更多相关《华为FusionInsight HD 651 技术白皮书 01.docx(53页珍藏版)》请在冰豆网上搜索。
华为FusionInsightHD651技术白皮书01
华为FusionInsightHD
6.5.1
技术白皮书
文档版本
01
发布日期
2019-06-30
华为技术有限公司
版权所有©华为技术有限公司2020。
保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。
除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址:
深圳市龙岗区坂田华为总部办公楼邮编:
518129
网址:
1简介
1.1FusionInsight概述
1.2FusionInsightHD组件介绍
1.1FusionInsight概述
FusionInsight是华为企业级大数据存储、查询、分析的统一平台,能够帮助企业快速构建海量数据信息处理系统,通过对巨量信息数据实时与非实时的分析挖掘,发现全新价值点和企业商机。
FusionInsight解决方案由2个子产品FusionInsightHD、GaussDB200和1个操作运维系统FusionInsightManager构成。
●FusionInsightHD:
企业级的大数据处理环境,是一个分布式数据处理系统,对外提供大容量的数据存储、分析查询和实时流式数据处理分析能力。
●GaussDB200:
企业级的大规模并行处理关系型数据库。
GaussDB200采用MPP(MassiveParallelProcessing)架构,支持行存储和列存储,提供PB(Petabyte,2的50次方字节)级别数据量的处理能力。
●FusionInsightManager:
企业级大数据的操作运维系统,提供高可靠、安全、容错、易用的集群管理能力,支持大规模集群的安装部署、监控、告警、用户管理、权限管理、审计、服务管理、健康检查、问题定位、升级和补丁等功能。
1.2FusionInsightHD组件介绍
FusionInsight系统的整体逻辑架构图如下所示:
FusionInsightHD需要对开源组件进行封装和增强,对外提供稳定的大容量的数据存储、查询和分析能力。
各自组件提供功能如下:
●Manager:
作为运维系统,为FusionInsightHD提供高可靠、安全、容错、易用的集群管理能力,支持大规模集群的安装/升级/补丁、配置管理、监控管理、告警管理、用户管理、租户管理等。
●HDFS:
Hadoop分布式文件系统(HadoopDistributedFileSystem),提供高吞吐量的数据访问,适合大规模数据集方面的应用。
●HBase:
提供海量数据存储功能,是一种构建在HDFS之上的分布式、面向列的存储系统。
●Oozie:
提供了对开源Hadoop组件的任务编排、执行的功能。
以JavaWeb应用程序的形式运行在Javaservlet容器(如:
Tomcat)中,并使用数据库来存储工作流定义、当前运行的工作流实例(含实例的状态和变量)。
●ZooKeeper:
提供分布式、高可用性的协调服务能力。
帮助系统避免单点故障,从而建立可靠的应用程序。
●Redis:
提供基于内存的高性能分布式K-V缓存系统。
●Yarn:
Hadoop2.0中的资源管理系统,它是一个通用的资源模块,可以为各类应用程序进行资源管理和调度。
●Mapreduce:
提供快速并行处理大量数据的能力,是一种分布式数据处理模式和执行环境。
●Spark:
基于内存进行计算的分布式计算框架。
●Hive:
建立在Hadoop基础上的开源的数据仓库,提供类似SQL的HiveQL语言操作结构化数据存储服务和基本的数据分析服务。
●Loader:
基于ApacheSqoop实现FusionInsightHD与关系型数据库、ftp/sftp文件服务器之间数据批量导入/导出工具;同时提供JavaAPI/shell任务调度接口,供第三方调度平台调用。
●Hue:
提供了开源Hadoop组件的WebUI,可以通过浏览器操作HDFS的目录和文件,调用Oozie来创建、监控和编排工作流,可操作Loader组件,查看ZooKeeper集群情况。
●Flume:
一个分布式、可靠和高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写入各种数据接受方(可定制)的能力。
●Solr:
一个高性能,基于Lucene的全文检索服务器。
Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。
●Elasticsearch:
一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于JAVA/Lucene构建,开源、分布式、支持RESTful请求。
Elasticsearch服务支持结构化、非结构化文本的多条件检索、统计和报表生成,拥有完善的监控体系,提供一系列系统,集群以及查询性能等关键指标,让用户更专注于业务逻辑的实现。
多用于日志搜索和分析、时空检索、时序检索和报表、智能搜索等场景。
●Kafka:
一个分布式的、分区的、多副本的实时消息发布-订阅系统。
提供可扩展、高吞吐、低延迟、高可靠的消息分发服务。
●Storm:
一个分布式、可靠、容错的实时流式数据处理的系统,并提供类SQL(StreamCQL)的查询语言。
●Flink:
分布式的、高可用的、能保证ExactlyOnce语义的针对流数据和批数据的处理引擎。
●SparkSQL:
基于Spark引擎的高性能SQL引擎,可与Hive实现元数据共享。
●Elk:
一个分布式交互查询分析数据仓库引擎,支持标准的SQL2003规范,支持标准SQL对数据的并行插入、删除、修改、查询等功能。
●MLlib:
提供基于Spark的数据挖掘算法库。
●GraphX:
提供基于Spark的图处理算法库。
●GraphBase:
提供关系数据存储、查询、分析能力。
●Pollux:
一个兼容相同数据中心和跨数据中心多数据源协助查询的系统。
2重点组件介绍
2.1集群管理Manager
2.2分布式文件系统HDFS
2.3统一资源管理和调度框架YARN
2.4分布式批处理引擎MapReduce
2.5分布式数据库HBase
2.6数据仓库组件Hive
2.7分布式内存计算引擎Spark
2.8交互式SQL引擎Elk
2.9全文检索组件Solr
2.10全文检索组件Elasticsearch
2.11批量数据集成Loader
2.12实时数据采集Flume
2.13流式事件处理(Storm)
2.14流处理引擎Flink
2.15分布式高速缓存Redis
2.16分布式消息队列Kafka
2.17作业编排与调度Oozie
2.18数据继承入口Hue
2.19分布式图数据库GraphBase
2.20多租户
2.21安全增强
2.22可靠性增强
2.23滚动重启、滚动升级与滚动补丁
2.1集群管理Manager
Manager是FusionInsightHD的运维管理系统,为部署在集群内的服务提供统一的集群管理能力。
Manager支持大规模集群的安装部署、性能监控、告警、用户管理、权限管理、审计、服务管理、健康检查、日志采集、升级和补丁等功能。
图2-1Manager逻辑架构
FusionInsightManager由OMS和NodeAgent组成:
●OMS:
操作维护系统的管理节点,OMS一般有两个,互为主备。
●NodeAgent:
操作维护系统中的所有被管理节点,每个节点上一个。
表2-1业务模块说明
模块名称
描述
WebService
是一个部署在Tomcat下的Web服务,提供Manager的https接口,用于通过浏览器访问Manager。
同时还提供基于Syslog和SNMP协议的北向接入能力
Controller
Manager的控制中心,负责汇聚来自集群中所有节点的信息,统一向管理员展示,以及负责接收来自管理员的操作指令,并且依据操作指令所影响的范围,向集群的所有相关节点同步信息
NodeAgent
●存在于每一个集群节点,是Controller对部署在该节点上组件做一切操作的代理。
●代表本节点上部署的所有组件与Controller交互,实现整个集群多点到单点的汇聚。
IAM
负责记录审计日志。
在Manager的UI上每一个非查询类操作,都有对应的审计日志
PMS
性能监控模块,搜集每一个OMA上的性能监控数据并提供查询
CEP
汇聚功能模块。
比如将所有OMA上的磁盘已用空间汇总成一个性能指标
FMS
告警模块,搜集每一个OMA上的告警并提供查询
OMMAgent
各节点上面性能监控和告警的Agent,负责收集该AgentNode上的性能监控数据和告警数据
CAS
统一认证中心,登录WebService时需要在CAS进行登录认证,浏览器通过URL自动跳转访问CAS
AOS
权限管理模块,管理用户和用户组的权限
OMSKerberos
提供单点登录及Controller与NodeAgent间认证的功能。
OMSLdap
在集群安装前为用户认证提供数据存储,在集群安装后作为集群中Ldap的备份
Database
Manager的数据库,负责存储配置、监控、告警等信息
NTP
负责集群内部各节点与OMS节点之间的时钟同步和OMS节点与外部时钟源之间的时钟同步。
支持5000+节点大集群
Manager通过支持以下特性,达到支持5000+大集群的能力:
●快速部署安装
产品集成的集群部署规划工具,可自动生成安装模板和扩容模板,创建一个5000节点,仅需要不到5个小时时间。
●文件分发多点续传
软件包下发给集群中各节点时采用类P2P机制,一传十、十传百,传输效率不再依赖节点规模
●全场景容错机制
所有维护操作支持重试,安装部署支持角色级别容错,支持主机隔离。
部分节点/角色故障,不影响整体维护操作。
●大集群环境异构能力
配置集中管理,支持按实例组配置,不同硬件规格主机设置不同的配置,提升配置异构能力。
●集群规模弹性伸缩
集群可大可小,不同集群规模应用不同系统参数,更加合理利用硬件资源
●高性能监控指标汇聚计算能力
分布式监控汇聚计算模型,能够瞬时处理250000条并发监控指标。
●轻松应对告警风暴
每秒支持处理高达10000条并发告警
支持多服务
多服务特性是指组件不需要定义多套,由Manager直接支持在一个集群内,将同一组件安装多套,以便更好地解决资源隔离问题或性能问题。
新添加的服务实例拥有与原服务相同的功能模块,例如日志、运行用户或Shell命令。
Manager可以统一管理HBase、Hive和Spark/Spark2x等不同服务实例,例如监控、告警和启动停止服务的功能。
在使用Loader导入导出数据、使用Metadata抽取元数据、创建角色、备份恢复或者应用开发的场景中,系统管理员需要根据实际情况,选择对应的服务实例进行操作。
支持在线日志检索
支持在线检索并显示组件的日志内容,用于问题定位等其他日志查看场景。
●检索内容支持关键字、正则表达式。
●支持服务、文件、日志级别、主机范围、时间范围的选择。
●支持检索返回结果的最大条数和检索超时的配置功能。
●针对检索结果支持排序、二次检索功能。
●支持检索结果的导出。
支持多集群统一管理
支持多集群统一管理,使用一套FusionInsightManager可创建、管理多个集群,减少运维人员管理多个集群需要操作多套界面的繁琐。
FusionInsightManager支持同时管理多个相同产品类型的集群,也支持不同产品类型的集群。
●多集群部署
多个集群统一部署一套OMS,所有集群共用管理节点,非首个安装的集群不需要额外准备管理节点。
部署集群时,一台主机只能属于一个集群,管理节点可单独部署,不归属于任何一个集群。
●多集群任务并发
多个集群的运维任务可并发执行,互不影响,FusionInsightManager支持在任务管理中心显示集群名称,支持按集群检索任务。
●统一用户权限管理
多个集群共用一套用户权限管理体系,用户通过关联不同集群角色的权限,可访问各集群内的资源。
●多集群运维监控
管理员可通过FusionInsightManager同时对多个集群进行服务管理、主机管理、租户资源管理、日常监控、告警查看等操作。
2.2分布式文件系统HDFS
HDFS是Hadoop的分布式文件系统,实现大规模数据可靠的分布式读写。
HDFS针对的使用场景是数据读写具有“一次写,多次读”的特征,而数据“写”操作是顺序写,也就是在文件创建时的写入或者在现有文件之后的添加操作。
HDFS保证一个文件在一个时刻只被一个调用者执行写操作,而可以被多个调用者执行读操作。
图2-1分布式文件系统HDFS
2.3统一资源管理和调度框架YARN
2.3.1Yarn
为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性,并消除早期MapReduce框架中的JobTracker性能瓶颈,开源社区引入了统一的资源管理框架YARN。
YARN分层结构的本质是ResourceManager。
这个实体控制整个集群并管理应用程序向基础计算资源的分配。
ResourceManager将各个资源部分(计算、内存、带宽等)精心安排给基础NodeManager(YARN的每节点代理)。
ResourceManager还与ApplicationMaster一起分配资源,与NodeManager一起启动和监视它们的基础应用程序。
在此上下文中,ApplicationMaster承担了以前的TaskTracker的一些角色,ResourceManager承担了JobTracker的角色。
ApplicationMaster管理一个在YARN内运行的应用程序的每个实例。
ApplicationMaster负责协调来自ResourceManager的资源,并通过NodeManager监视容器的执行和资源使用(CPU、内存等的资源分配)。
请注意,尽管目前的资源更加传统(CPU核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。
从YARN角度讲,ApplicationMaster是用户代码,因此存在潜在的安全问题。
YARN假设ApplicationMaster存在错误或者甚至是恶意的,因此将它们当作无特权的代码对待。
NodeManager管理一个YARN集群中的每个节点。
NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。
MRv1通过插槽管理Map和Reduce任务的执行,而NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。
图2-1统一资源管理和调度框架YARN
2.3.2SuperiorScheduler
SuperiorScheduler是一个专门为HadoopYARN分布式资源管理系统设计的调度引擎,是针对企业客户融合资源池,多租户的业务诉求而设计的高性能企业级调度器。
SuperiorScheduler可实现开源调度器、FairScheduler以及CapacityScheduler的所有功能。
另外,相较于开源调度器,SuperiorScheduler在企业级多租户调度策略、租户内多用户资源隔离和共享、调度性能、系统资源利用率和支持大集群扩展性方面都做了针对性的增强。
设计的目标是让SuperiorScheduler直接替代开源调度器。
类似于开源FairScheduler和CapacityScheduler,SuperiorScheduler通过YARN调度器插件接口与YARNResourceManager组件进行交互,以提供资源调度功能。
下图为其整体系统图。
图2-1SuperiorScheduler内部架构
SuperiorScheduler的主要模块如下:
●SuperiorSchedulerEngine:
具有丰富调度策略的高性能调度器引擎。
●SuperiorYARNSchedulerPlugin:
YARNResourceManager和SuperiorSchedulerEngine之间的桥梁,负责同YARNResourceManager交互。
在调度原理上,开源的调度器都是基于计算节点心跳驱动的资源反向匹配作业的调度机制。
具体来讲,每个计算节点定期发送心跳到YARN的ResourceManager通知该节点状态并同时启动调度器为这个节点分配作业。
这种调度机制把调度的周期同心跳结合在一起,当集群规模增大时,会遇到系统扩展性以及调度性能瓶颈。
另外,因为采用了资源反向匹配作业的调度机制,开源调度器在调度精度上也有局限性,例如数据亲和性偏于随机,另外系统也无法支持基于负载的调度策略等。
主要原因是调度器在选择作业时,缺乏全局的资源视图,很难做到最优选择。
SuperiorScheduler内部采用了不同的调度机制。
SuperiorScheduler的调度器引入了专门的调度线程,把调度同心跳剥离开,避免了系统心跳风暴问题。
另外,SuperiorScheduler调度流程采用了从作业到资源的正向匹配方法,这样每个调度的作业都有全局的资源视图,可以很大的提到调度的精度。
相比开源调度器,SuperiorScheduler在系统吞吐量、利用率、数据亲和性等方面都有很大提升。
图2-2SuperiorScheduler性能对比
SuperiorScheduler除了提高系统吞吐量和利用率,还提供了以下主要调度功能:
●多资源池
多资源池有助于在逻辑上划分集群资源并在多个租户/队列之间共享它们。
资源池的划分可以基于异构的资源或完全按照应用资源隔离的诉求来划分。
对于一个资源池,不同队列可配置进一步的策略。
●每个资源池多租户调度(reserve、min、share、max)
SuperiorScheduler提供了灵活的层级多租户调度策略。
并允许针对不同的资源池可以访问的租户/队列,配置不同策略,如下所示。
表2-1策略描述
策略名称
描述
reserve
预留租户资源。
即使租户没有作业,其他租户也不能使用该预留的资源。
其值可以是百分比或绝对值。
如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者的最大值。
缺省的reserve值为0。
相对于定义一个专用资源池并指定具体机器的方式,reserve的策略可以认为提供了一种灵活的浮动预留功能,由于并不限定具体的机器,可以提高计算的数据亲和性,也不会受具体机器故障的影响。
min
具有抢占支持的最低保证资源。
其他租户可以使用这部分资源,但是本租户享有优先使用权。
其值可以是百分比或绝对值。
如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者的最大值。
缺省值是0。
share
不支持抢占的共享资源。
本租户要使用这部分资源时,需要等待其他租户完成作业并释放资源。
其值是百分比或绝对值。
max
允许的最大资源数量。
租户无法获得比允许的最大资源多的资源。
其值是百分比或绝对值。
如果两者都配置,调度系统动态计算转换为资源绝对值,并取两者最大值。
缺省值不受限制。
租户资源分配策略示意图,如图2-6所示。
图2-3策略示意图
其中“total”表示总资源,不是调度策略。
同开源的调度器相比,SuperiorScheduler同时提供了租户级百分比和绝对值的混配策略,可以很好的适应各种灵活的企业级租户资源调度诉求。
例如,用户可以在一级租户提供最大绝对值的资源保障,这样租户的资源不会因为集群的规模改变而受影响。
但在下层的子租户之间,可以提供百分比的分配策略,这样可以尽可能提升一级租户内的资源利用率。
●异构和多维资源调度
SuperiorScheduler支持CPU和内存资源的调度外,还支持扩展支持以下功能:
−节点标签可用于识别像GPU_ENABLED,SSD_ENBALED等节点的多维属性,可以根据这些标签进行调度。
−资源池可用于对同一类别的资源进行分组并分配给特定的租户/队列。
●租户内多用户公平调度
在叶子租户里,多个用户可以使用相同的队列来提交作业。
相比开源调度器,SuperiorScheduler可以支持在同一租户内灵活配置不同用户的资源共享策略。
例如可以为VIP用户配置更多的资源访问权重。
●数据位置感知调度
SuperiorScheduler采用“从作业到节点的调度策略”,即尝试在可用节点之间调度给定的作业,使得所选节点适合于给定作业。
通过这样做,调度器将具有集群和数据的整体视图。
如果有机会使任务更接近数据,则保证了本地化。
而开源调度器采用“从节点到作业的调度策略”,在给定节点中尝试匹配适当的作业。
●Container调度时动态资源预留
在异构和多样化的计算环境中,一些container需要更多的资源或多种资源,例如Spark作业可能需要更大的内存。
当这些container与其他需要较小资源的container竞争时,可能没有机会在合理的时间内获得所需的资源而处于饥饿状态。
由于开源的调度器是基于资源反向匹配作业的调度方式,会为这些作业盲目的进行资源预留以防进入饥饿状态。
这就导致了系统资源的整体浪费。
SuperiorScheduler与开源特性的不同之处在于:
−基于需求的匹配:
由于SuperiorScheduler采用“从作业到节点的调度”,能够选择合适的节点来预留资源提升这些特殊container的启动时间,并避免浪费。
−租户重新平衡:
启用预留逻辑时,开源调度器并不遵循配置的共享策略。
SuperiorScheduler采取不同的方法。
在每个调度周期中,SuperiorScheduler将遍历租户,并尝试基于多租户策略重新达到平衡,且尝试满足所有策略(reserve,min,share等),以便可以释放预留的资源,将可用资源流向不同租户下的其他本应得到资源的container。
●动态队列状态控制(Open/Closed/Active/InActive)
支持多个队列状态,有助于管理员操作和维护多个租户。
−Open状态(Open/Closed):
如果是Open(默认)状态,将接受提交到此队列的应用程序,如果是Closed状态,则不接受任何应用程序。
−Active状态(Active/Inactive):
如果处于Active(默认)状态,租户内的应用程序是可以被调度和分配资源。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为FusionInsight HD 651 技术白皮书 01 华为 FusionInsight 技术 白皮书