华为云用户手册

  • 作业管理 MRS 作业管理为用户提供向集群提交作业的入口,支持包括MapReduce、Spark、HQL和SparkSQL等类型的作业。 结合华为云 数据治理中心 DataArts Studio,提供一站式的大数据协同开发环境、全托管的大数据调度能力,帮助用户快速构建大数据处理中心。 通过 数据治理 中心 DataArts Studio ,用户可以先在线开发调试MRS HQL/SparkSQL脚本、拖拽式地开发MRS作业,完成MRS与其他20多种异构数据源之间的数据迁移和数据集成;通过强大的作业调度与灵活的监控告警,轻松管理数据作业运维。 目前MRS集群支持在线创建如下几种类型的作业: MapReduce:提供快速并行处理大量数据的能力,是一种分布式数据处理模式和执行环境,MRS支持提交MapReduce Jar程序。 Spark:基于内存进行计算的分布式计算框架,MRS支持提交SparkSubmit、Spark Script和Spark SQL作业。 SparkSubmit:提交Spark Jar和Spark Python程序,运行Spark Application计算和处理用户数据。 SparkScript:提交SparkScript脚本,批量执行Spark SQL语句。 Spark SQL:使用Spark提供的类似SQL的Spark SQL语句,实时查询和分析用户数据。 Hive:建立在Hadoop基础上的开源的 数据仓库 。MRS支持提交HiveScript脚本和直接执行Hive SQL语句。 Flink:提供一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。 HadoopStreaming:HadoopStreaming作业像普通Hadoop作业一样,除了可以指定输入和输出的HDFS路径的参数外,它还可以指定mapper和reducer的可执行程序。 父主题: 产品功能
  • ZooKeeper和HBase的关系 ZooKeeper与HBase的关系如图3所示。 图3 ZooKeeper和HBase的关系 RegionServer以Ephemeral node的方式注册到ZooKeeper中。其中ZooKeeper存储HBase的如下信息:HBase元数据、HMaster地址。 HMaster通过ZooKeeper随时感知各个RegionServer的健康状况,以便进行控制管理。 HBase也可以部署多个HMaster,类似HDFS NameNode,当HMaster主节点出现故障时,HMaster备用节点会通过ZooKeeper获取主HMaster存储的整个HBase集群状态信息。即通过ZooKeeper实现避免HBase单点故障问题的问题。
  • ZooKeeper和HDFS的关系 ZooKeeper与HDFS的关系如图1所示。 图1 ZooKeeper和HDFS的关系 ZKFC(ZKFailoverController)作为一个ZooKeeper集群的客户端,用来监控NameNode的状态信息。ZKFC进程仅在部署了NameNode的节点中存在。HDFS NameNode的Active和Standby节点均部署有ZKFC进程。 HDFS NameNode的ZKFC连接到ZooKeeper,把主机名等信息保存到ZooKeeper中,即“/hadoop-ha”下的znode目录里。先创建znode目录的NameNode节点为主节点,另一个为备节点。HDFS NameNode Standby通过ZooKeeper定时读取NameNode信息。 当主节点进程异常结束时,HDFS NameNode Standby通过ZooKeeper感知“/hadoop-ha”目录下发生了变化,NameNode会进行主备切换。
  • ZooKeeper和YARN的关系 ZooKeeper与YARN的关系如图2所示。 图2 ZooKeeper与YARN的关系 在系统启动时,ResourceManager会尝试把选举信息写入ZooKeeper,第一个成功写入ZooKeeper的ResourceManager被选举为Active ResourceManager,另一个为Standby ResourceManager。Standby ResourceManager定时去ZooKeeper监控Active ResourceManager选举信息。 Active ResourceManager还会在ZooKeeper中创建Statestore目录,存储Application相关信息。当Active ResourceManager产生故障时,Standby ResourceManager会从Statestore目录获取Application相关信息,恢复数据。
  • Manager结构 Manager的整体逻辑架构如图1所示。 图1 Manager逻辑架构 Manager由 OMS 和OMA组成: OMS:操作维护系统的管理节点,OMS一般有两个,互为主备。 OMA:操作维护系统中的被管理节点,一般有多个。 图1中各模块的说明如表1所示: 表1 业务模块说明 模块名称 描述 Web Service 是一个部署在Tomcat下的Web服务,提供Manager的https接口,用于通过浏览器访问Manager。同时还提供基于Syslog和SNMP协议的北向接入能力。 OMS 操作维护系统的管理节点,OMS节点一般有两个,互为主备。 OMA 操作维护系统中的被管理节点,一般有多个。 Controller Controller是Manager的控制中心,负责汇聚来自集群中所有节点的信息,统一向MRS集群管理员展示,以及负责接收来自MRS集群管理员的操作指令,并且依据操作指令所影响的范围,向集群的所有相关节点同步信息。 Manager的控制进程,负责各种管理动作的执行: Web Service将各种管理动作(安装、启停服务、修改配置等)下发到Controller。 Controller将命令分解,分解后将动作下发到每一个Node Agent。例如启动一个服务,会涉及多个角色和实例。 Controller负责监控每一个动作的执行情况。 Node Agent Node Agent存在于每一个集群节点,是Manager在单个节点的使能器。 Node Agent代表本节点上部署的所有组件与Controller交互,实现整个集群多点到单点的汇聚。 Node Agent是Controller对部署在该节点上组件做一切操作的使能器,其代表着Controller的功能。 Node Agent每隔3秒向Controller发送心跳信息,不支持配置时间间隔。 IAM 负责记录审计日志。在Manager的UI上每一个非查询类操作,都有对应的审计日志。 PMS 性能监控模块,搜集每一个OMA上的性能监控数据并提供查询。 CEP 汇聚功能模块。比如将所有OMA上的磁盘已用空间汇总成一个性能指标。 FMS 告警模块,收集每一个OMA上的告警并提供查询。 OMM Agent OMA上面性能监控和告警的Agent,负责收集该Agent Node上的性能监控数据和告警数据。 CAS 统一认证中心,登录Web Service时需要在CAS进行登录认证,浏览器通过URL自动跳转访问CAS。 AOS 权限管理模块,管理用户和用户组的权限。 A CS 用户和用户组管理模块,管理用户及用户归属的用户组。 Kerberos 在OMS与集群中各部署一个。 OMS Kerberos提供单点登录及Controller与Node Agent间认证的功能。 集群中Kerberos提供组件用户安全认证功能,其服务名称为KrbServer,包含两种角色实例: KerberosServer:认证服务器,为MRS提供安全认证使用。 KerberosAdmin:管理Kerberos用户的进程。 Ldap 在OMS与集群中各部署一个。 OMS Ldap为用户认证提供数据存储。 集群中的Ldap作为OMS Ldap的备份,其服务名称为LdapServer,角色实例为SlapdServer。 Database Manager的数据库,负责存储日志、告警等信息。 HA 高可用性管理模块,主备OMS通过HA进行主备管理。 NTP Server NTP Client 负责同步集群内各节点的系统时钟。
  • ZooKeeper和Kafka的配合关系 ZooKeeper与Kafka的关系如图 ZooKeeper和Kafka的关系所示。 图4 ZooKeeper和Kafka的关系 Broker端使用ZooKeeper用来注册broker信息,并进行partition leader选举。 Consumer端使用ZooKeeper用来注册consumer信息,其中包括consumer消费的partition列表等,同时也用来发现broker列表,并和partition leader建立socket连接,并获取消息。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • CDL简介 CDL(全称Change Data Loader)是一个基于Kafka Connect框架的实时数据集成服务。 CDL服务能够从各种OLTP数据库中捕获数据库的Data Change事件,并推送到kafka,再由sink connector推送到大数据生态系统中。 CDL目前支持的数据源有MySQL、PostgreSQL、Hudi、Kafka、ThirdParty-Kafka,目标端支持写入Kafka、Hudi、DWS以及ClickHouse。
  • 实现方案 多租户模式的HA方案原理如图1所示。 图1 Spark JD BCS erver多租户 ProxyServer在启动时,向ZooKeeper注册自身消息,在指定目录中写入节点信息,节点信息包含了该实例对应的IP,端口,版本号和序列号等信息(多节点信息之间以逗号隔开)。 多租户模式下,MRS页面上的JDBCServer实例是指ProxyServer(JDBCServer代理)。 示例如下: serverUri=192.168.169.84:22550;version=8.1.0.1;sequence=0000001244,serverUri=192.168.195.232:22550;version=8.1.0.1;sequence=0000001242,serverUri=192.168.81.37:22550;version=8.1.0.1;sequence=0000001243, 客户端连接ProxyServer时,需要指定Namespace,即访问ZooKeeper哪个目录下的ProxyServer实例。在连接的时候,会根据当前租户名的Hash值与Zookeeper下的Namespace实例个数取模获取连接的实例,详细URL参见URL连接介绍。 客户端成功连接ProxyServer服务,ProxyServer服务首先确认是否有该租户的JDBCServer存在,如果有,直接将Beeline连上真正的JDBCServer;如果没有,则以YARN-Cluster模式启动一个新的JDBCServer。JDBCServer启动成功后,ProxyServer会获取JDBCServer的地址,并将Beeline连上JDBCServer。 客户端发送SQL语句给ProxyServer,ProxyServer将语句转交给真正连上的JDBCServer处理。最后JDBCServer服务将结果返回给ProxyServer,ProxyServer再将结果返回给客户端。 在HA方案中,每个ProxyServer服务(即实例)都是独立且等同的,当其中一个实例在升级或者业务中断时,其他的实例也能接受客户端的连接请求。
  • Hue开源增强特性 存储策略定义。HDFS文件存储在多种等级的存储介质中,有不同的副本数。本特性可以手工设置HDFS目录的存储策略,或者根据HDSF文件最近访问时间和最近修改时间,自动调整文件存储策略、修改文件副本数、移动文件所在目录、自动删除文件,以便充分利用存储的性能和容量。 MR引擎。用户执行Hive SQL可以选择使用MR引擎执行。 可靠性增强。Hue自身主备部署。Hue与HDFS、Oozie、Hive、Yarn等对接时,支持Failover或负载均衡工作模式。
  • 背景介绍 JDBCServer多主实例方案中,JDBCServer的实现使用YARN-Client模式,但YARN资源队列只有一个,为了解决这种资源局限的问题,引入了多租户模式。 多租户模式是将JDBCServer和租户绑定,每一个租户对应一个或多个JDBCServer,而一个JDBCServer只给一个租户提供服务。不同的租户可以配置不同的YARN队列,从而达到资源隔离,且JDBCServer根据需求动态启动,可避免浪费资源。
  • 特性描述 MRS联合 消息通知 服务( SMN ),采用主题订阅模型,提供一对多的消息订阅以及通知功能,能够实现一站式集成多种推送通知方式。 首先,作为主题拥有者,可以先创建一个主题,并对主题设置访问控制权限来决定哪些发布者和订阅者可以通过该主题进行交流。MRS将集群消息发送至您有权限发布消息的主题,然后所有订阅了该主题的订阅者(可以是手机短信、邮箱等)都将收到集群变更以及组件告警的消息。 图1 实现过程
  • Loader与其他组件的关系 与Loader有交互关系的组件有HDFS、HBase、Hive、Yarn、Mapreduce和ZooKeeper等。 Loader作为客户端使用这些组件的某些功能,如存储数据到HDFS和HBase,从HDFS和HBase表读数据,同时Loader本身也是一个Mapreduce客户端程序,完成一些数据导入导出任务。 Loader通过MapReduce作业实现并行的导入或者导出作业任务,不同类型的导入导出作业可能只包含Map阶段或者同时Map和Reduce阶段。 父主题: Loader
  • Flume开源增强特性 提升传输速度。可以配置将指定的行数作为一个Event,而不仅是一行,提高了代码的执行效率以及减少写入磁盘的次数。 传输超大二进制文件。Flume根据当前内存情况,自动调整传输超大二进制文件的内存占用情况,不会导致Out of Memory(OOM)的出现。 支持定制传输前后准备工作。Flume支持定制脚本,指定在传输前或者传输后执行指定的脚本,用于执行准备工作。 管理客户端告警。Flume通过MonitorServer接收Flume客户端告警,并上报Manager告警管理中心。
  • 特性简介 大数据集群运行过程中经常会进行如下操作: 大数据集群变更,比如扩容、缩容集群。 业务数据量突然变化,集群触发弹性伸缩。 相关业务结束,需要终止大数据集群等。 用户想要及时得知这些操作是否执行成功,以及当集群出现大数据服务不可用,或节点故障时,用户希望不用频繁登录集群查看,就可以及时地收到告警通知。MRS联合消息通知服务(SMN),可以将以上信息主动地通知到用户的手机及邮箱,让维护更加省心省力。
  • Loader开源增强特性:数据导入导出 Loader是在开源Sqoop组件的基础上进行了一些扩展,除了包含Sqoop开源组件本身已有的功能外,还开发了如下的增强特性: 提供数据转化功能 支持图形化配置转换步骤 支持从SFTP/FTP服务器导入数据到HDFS/OBS 支持从SFTP/FTP服务器导入数据到HBase表 支持从SFTP/FTP服务器导入数据到Phoenix表 支持从SFTP/FTP服务器导入数据到Hive表 支持从HDFS/OBS导出数据到SFTP服务器 支持从HBase表导出数据到SFTP服务器 支持从Phoenix表导出数据到SFTP服务器 支持从关系型数据库导入数据到HBase表 支持从关系型数据库导入数据到Phoenix表 支持从关系型数据库导入数据到Hive表 支持从HBase表导出数据到关系型数据库 支持从Phoenix表导出数据到关系型数据库 支持从Oracle分区表导入数据到HDFS/OBS 支持从Oracle分区表导入数据到HBase表 支持从Oracle分区表导入数据到Phoenix表 支持从Oracle分区表导入数据到Hive表 支持从HDFS/OBS导出数据到Oracle分区表 支持从HBase导出数据到Oracle分区表 支持从Phoenix表导出数据到Oracle分区表 在同一个集群内,支持从HDFS导数据到HBase、Phoenix表和Hive表 在同一个集群内,支持从HBase和Phoenix表导数据到HDFS/OBS 导入数据到HBase和Phoenix表时支持使用bulkload和put list两种方式 支持从SFTP/FTP导入所有类型的文件到HDFS,开源只支持导入文本文件 支持从HDFS/OBS导出所有类型的文件到SFTP,开源只支持导出文本文件和sequence格式文件 导入(导出)文件时,支持对文件进行转换编码格式,支持的编码格式为jdk支持的所有格式 导入(导出)文件时,支持保持原来文件的目录结构和文件名不变 导入(导出)文件时,支持对文件进行合并,如输入文件为海量个文件,可以合并为n个文件(n值可配) 导入(导出)文件时,可以对文件进行过滤,过滤规则同时支持通配符和正则表达式 支持批量导入/导出ETL任务 支持ETL任务分页查询、关键字查询和分组管理 对外部组件提供浮动IP
  • MRS集群创建限制 表1 MRS集群创建约束说明 限制项 说明 网络要求 MRS集群必须创建在VPC子网内。 创建MRS集群时,支持自动创建安全组,也可选择已有的安全组。 MRS集群使用的安全组请勿随意放开权限,避免被恶意访问。 浏览器 建议使用推荐的浏览器登录MRS管理界面。 Google Chrome:36.0及更高版本 Edge:随Windows操作系统更新。 数据存储 MRS集群节点仅用于存储用户业务数据,非业务数据建议保存在 对象存储服务 或其他弹性云服务器中。 MRS集群节点仅用于运行MRS集群内服务,其他客户端应用程序、用户业务程序建议申请独立弹性云服务器部署。 请根据业务需要规划集群节点的磁盘,如果需要存储大量业务数据,请及时增加云硬盘数量或存储空间,以防止存储空间不足影响节点正常运行。 MRS集群扩容(包含存储能力和计算能力)可通过增加Core节点或者Task节点的方式实现。 密码要求 MRS不会保存您设置的登录Master节点的初始密码,请您设置并保管好密码。为避免被恶意攻击,建议设置复杂度高的密码。 技术支持 集群处于非人为异常状态时,可以联系技术支持人员,技术支持人员征得您同意后会请您提供密码,登录MRS集群进行问题排查。 集群处于异常状态时,MRS仍然会收取集群费用。建议您及时联系技术支持人员处理集群异常。
  • Flink HA方案介绍 每个Flink集群只有单个JobManager,存在单点失败的情况。Flink有Yarn、Standalone和Local三种模式,其中Yarn和Standalone是集群模式,Local是指单机模式。但Flink对于Yarn模式和Standalone模式提供HA机制,使集群能够从失败中恢复。这里主要介绍Yarn模式下的HA方案。 Flink支持HA模式和Job的异常恢复。这两项功能高度依赖ZooKeeper,在使用之前用户需要在“flink-conf.yaml”配置文件中配置ZooKeeper,配置ZooKeeper的参数如下: high-availability: zookeeperhigh-availability.zookeeper.quorum: ZooKeeperIP地址:2181high-availability.storageDir: hdfs:///flink/recovery Yarn模式 Flink的JobManager与Yarn的Application Master(简称AM)是在同一个进程下。Yarn的ResourceManager对AM有监控,当AM异常时,Yarn会将AM重新启动,启动后,所有JobManager的元数据从HDFS恢复。但恢复期间,旧的业务不能运行,新的业务不能提交。ZooKeeper上还是存有JobManager的元数据,比如运行Job的信息,会提供给新的JobManager使用。对于TaskManager的失败,由JobManager上Akka的DeathWatch机制处理。当TaskManager失败后,重新向Yarn申请容器,创建TaskManager。 Yarn模式的HA方案的更多信息,可参考链接: http://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html Standalone模式 对于Standalone模式的集群,可以启动多个JobManager,然后通过ZooKeeper选举出Leader作为实际使用的JobManager。该模式下可以配置一个主JobManager(Leader JobManager)和多个备JobManager(Standby JobManager),这能够保证当主JobManager失败后,备的某个JobManager可以承担主的职责。图1为主备JobManager的恢复过程。 图1 恢复过程 TaskManager恢复 对于TaskManager的失败,由JobManager上Akka的DeathWatch机制处理。当TaskManager失败后,由JobManager负责创建一个新TaskManager,并把业务迁移到新的TaskManager上。 JobManager恢复 Flink的JobManager与Yarn的Application Master(简称AM)是在同一个进程下。Yarn的ResourceManager对AM有监控,当AM异常时,Yarn会将AM重新启动,启动后,所有JobManager的元数据从HDFS恢复。但恢复期间,旧的业务不能运行,新的业务不能提交。 Job恢复 Job的恢复必须在Flink的配置文件中配置重启策略。当前包含三种重启策略:fixed-delay、failure-rate和none。只有配置fixed-delay、failure-rate,Job才可以恢复。另外,如果配置了重启策略为none,但Job设置了Checkpoint,默认会将重启策略改为fixed-delay,且重试次数是配置项“restart-strategy.fixed-delay.attempts”的值。 三种策略的具体信息请参考Flink官网:https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/task_failure_recovery.html。配置策略的参考如下: restart-strategy: fixed-delayrestart-strategy.fixed-delay.attempts: 3restart-strategy.fixed-delay.delay: 10 s 以下场景的异常,都会导致Job重新恢复: 当JobManager失败后,所有Job会停止,直到新的JobManager运行后,所有Job恢复。 当某一TaskManager失败后,这个TaskManager上的所有作业都将停止,然后等待有可用资源后重启。 当某个Job的Task失败后,整个Job也会重启。 有关Job的配置重启策略,具体内容请参见https://ci.apache.org/projects/flink/flink-docs-release-1.12/ops/jobmanager_high_availability.html。
  • 节点可靠性 操作系统健康状态监控 周期采集操作系统硬件资源使用率数据,包括CPU、内存、硬盘、网络等资源的使用率状态。 进程健康状态监控 MRS提供业务实例的状态以及业务实例进程的健康指标的检查,能够让用户第一时间感知进程健康状态。 硬盘故障的自动处理 MRS对开源版本进行了增强,可以监控各节点上的硬盘以及文件系统状态。如果出现异常,立即将相关分区移出存储池;如果硬盘恢复正常(通常是因为用户更换了新硬盘),也会将新硬盘重新加入业务运作。这样极大简化了维护人员的工作,更换故障硬盘可以在线完成;同时用户可以设置热备盘,从而极大缩减了故障硬盘的修复时间,有利于提高系统的可靠性。 节点磁盘LVM配置 MRS支持将多个磁盘配置成LVM(Logic Volume Management),多个磁盘规划成一个逻辑卷组。配置成LVM可以避免各磁盘间使用不均的问题,保持各个磁盘间均匀使用在HDFS和Kafka等能够利用多磁盘能力的组件上尤其重要。并且LVM可以支持磁盘扩容时不需要重新挂载,避免了业务中断。
  • OpenTSDB OpenTSDB是一个基于HBase的分布式、可伸缩的时间序列数据库。OpenTSDB的设计目标是用来采集大规模集群中的监控类信息,并可实现数据的秒级查询,解决海量监控类数据在普通数据库中查询存储的局限性。 OpenTSDB由时间序列守护进程(TSD)和一组命令行实用程序组成。与OpenTSDB的交互主要通过运行一个或多个TSD来实现。每个TSD都是独立的。没有主服务器,没有共享状态,因此您可以根据需要运行任意数量的TSD来处理您向其投入的任何负载。每个TSD使用CloudTable集群中的HBase来存储和检索时间序列数据。数据模式经过高度优化,可快速聚合相似的时间序列,从而最大限度地减少存储空间。TSD的用户不需要直接访问底层存储。您可以通过HTTP API与TSD进行通信。所有通信都发生在同一个端口上(TSD通过查看它收到的前几个字节来确定客户端的协议)。 图1 OpenTSDB架构 OpenTSDB使用场景有如下几个特点: 采集指标在某一时间点具有唯一值,没有复杂的结构及关系。 监控的指标具有随着时间不断变化的特点。 具有HBase的高吞吐,良好的伸缩性等特点。 OpenTSDB提供基于HTTP的应用程序编程接口,以实现与外部系统的集成。 几乎所有OpenTSDB功能都可通过API访问,例如查询时间序列数据,管理元数据和存储数据点。详情请参见:https://opentsdb.net/docs/build/html/api_http/index.html。 父主题: 组件介绍
  • MapReduce和HDFS的关系 HDFS是Hadoop分布式文件系统,具有高容错和高吞吐量的特性,可以部署在价格低廉的硬件上,存储应用程序的数据,适合有超大数据集的应用程序。 MapReduce是一种编程模型,用于大数据集(大于1TB)的并行运算。在MapReduce程序中计算的数据可以来自多个数据源,如Local FileSystem、HDFS、数据库等。最常用的是HDFS,利用HDFS的高吞吐性能读取大规模的数据进行计算,同时在计算完成后,也可以将数据存储到HDFS。
  • Ranger与其他组件的关系 Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS、Yarn、Hive、HBase、Kafka、Storm和Spark等,后续会支持更多组件。 Ranger为各组件提供了基于PBAC(Policy-Based Access Control)的权限管理插件,用于替换组件自身原来的鉴权插件。Ranger插件都是由组件侧自身的鉴权接口扩展而来,用户在Ranger WebUI上对指定service设置权限策略,Ranger插件会定期从RangerAdmin处更新策略并缓存在组件本地文件,当有客户端请求需要进行鉴权时,Ranger插件会对请求中携带的用户在策略中进行匹配,随后返回接受或拒绝。 组件每次启动都会检查组件默认的Ranger Service是否存在,如果不存在则会创建以及为其添加默认Policy。如果用户在使用过程中误删了Service,可以重启或者滚动重启相应组件服务来恢复,如果是误删了默认Policy,可先手动删除Service,再重启组件服务。 图1 Ranger与组件的关系 父主题: Ranger
  • 系统可靠性 管理节点均实现HA Hadoop开源版本的数据、计算节点已经是按照分布式系统进行设计的,单节点故障不影响系统整体运行;而以集中模式运作的管理节点可能出现的单点故障,就成为整个系统可靠性的短板。 MRS对所有业务组件的管理节点都提供了类似的双机的机制,包括Manager、HDFS NameNode、HiveServer、HBase HMaster、YARN ResourceManager、KerberosServer、LdapServer等,全部采用主备或负荷分担配置,有效避免了单点故障场景对系统可靠性的影响。 异常场景下的可靠性保证 通过可靠性分析方法,梳理软件、硬件异常场景下的处理措施,提升系统的可靠性。 保障意外掉电时的数据可靠性,不论是单节点意外掉电,还是整个集群意外断电,恢复供电后系统能够正常恢复业务,除非硬盘介质损坏,否则关键数据不会丢失。 硬盘亚健康检测和故障处理,对业务不造成实际影响。 自动处理文件系统的故障,自动恢复受影响的业务。 自动处理进程和节点的故障,自动恢复受影响的业务。 自动处理网络故障,自动恢复受影响的业务。 数据备份与恢复 为应对数据丢失或损坏对用户业务造成不利影响,在异常情况下快速恢复系统,MRS根据用户业务的需要提供全量备份、增量备份和恢复功能。 自动备份 MRS对集群管理系统Manager上的数据提供自动备份功能,根据制定的备份策略可自动备份集群上的数据,包括LdapServer、DBService的数据。 手动备份 在系统进行扩容、打补丁等重大操作前,需要通过手动备份集群管理系统的数据,以便在系统故障时,恢复集群管理系统功能。 为进一步提供系统的可靠性,在将Manager、HBase上的数据备份到第三方服务器时,也需要通过手动备份。
  • MapReduce和YARN的关系 MapReduce是运行在YARN之上的一个批处理计算框架。MRv1是Hadoop 1.0中的MapReduce实现,它由编程模型(新旧编程接口)、运行时环境(由JobTracker和TaskTracker组成)和数据处理引擎(MapTask和ReduceTask)三部分组成。该框架在扩展性、容错性(JobTracker单点)和多框架支持(仅支持MapReduce一种计算框架)等方面存在不足。MRv2是Hadoop 2.0中的MapReduce实现,它在源码级重用了MRv1的编程模型和数据处理引擎实现,但运行时环境由YARN的ResourceManager和ApplicationMaster组成。其中ResourceManager是一个全新的资源管理系统,而ApplicationMaster则负责MapReduce作业的数据切分、任务划分、资源申请和任务调度与容错等工作。
  • Tez和MapReduce间的关系 Tez采用了DAG来组织MapReduce任务(DAG中一个节点就是一个RDD,边表示对RDD的操作)。它的核心思想是把将Map任务和Reduce任务进一步拆分,Map任务拆分为Input-Processor-Sort-Merge-Output,Reduce任务拆分为Input-Shuffer-Sort-Merge-Process-output,Tez将若干小任务灵活重组,形成一个大的DAG作业。 图1 Hive基于MapReduce提交任务和基于Tez提交任务流程图 Hive on MapReduce任务中包含多个MapReduce任务,每个任务都会将中间结果存储到HDFS上——前一个步骤中的reducer为下一个步骤中的mapper提供数据。Hive on Tez任务仅在一个任务中就能完成同样的处理过程,任务之间不需要访问HDFS。
  • Presto多实例 MRS支持为大规格的集群默认安装Presto多实例,即一个Core/Task节点上安装多个Worker实例,分别为Worker1,Worker2,Worker3… ,多个Worker实例共同与Coordinator交互执行计算任务,相比较单实例,能够大大提高节点资源的利用率和计算效率。 Presto多实例仅作用于ARM架构规格,当前单节点最多支持4个实例。 更多Presto部署信息请参考:https://prestodb.io/docs/current/installation/deployment.html或https://trino.io/docs/current/installation/deployment.html。
  • Tez和Yarn间的关系 Tez是运行在Yarn之上的计算框架,运行时环境由Yarn的ResourceManager和ApplicationMaster组成。其中ResourceManager是一个全新的资源管理系统,而ApplicationMaster则负责MapReduce作业的数据切分、任务划分、资源申请和任务调度与容错等工作。此外,TezUI依赖Yarn提供的TimelineServer实现Tez任务运行过程呈现。
  • HBase开源增强特性:HBase热点自愈 该功能适用于MRS 3.3.0及之后版本。 HBase是一个分布式的KV数据库,Region是HBase数据管理的最小单元。如果用户在规划表和设计rowkey不合理,请求过于集中在少量固定Region时,会导致业务压力集中在单节点,造成业务侧可感知的性能下降甚至请求失败。 HBase服务增加了MetricController实例,开启热点检测能力,能够监控每个RegionServer节点的请求流量,通过聚合分析,识别出请求偏高的节点和Region,有助于快速发现热点问题;并提供一定的热点问题自愈能力,比如热点Region自动转移或Split。对于无法提供自愈的热点场景(单rowkey热点、顺序写热点等),提供了热点限流的能力,避免单点问题影响同节点的其他正常业务。
  • HBase开源增强特性:Batch TRSP HBase 2.x内核版本使用HBase Procedure框架重写了region assignment的逻辑(AMV2)。每个Region的open或者close都会有一个TransitRegionStateProcedure(TRSP)与之关联。当RegionServer因为故障或重启需要恢复业务时,HMaster会为每个需要恢复的Region创建一个TRSP,大量的TRSP需要把数据持久化到Proc WAL文件中并且需要跟RegionServer进行RPC交互,可能造成HMaster性能瓶颈,导致服务恢复时间过长。 本功能主要通过在TRSP中添加attach region的方式,利用一个TRSP将一个RegionServer所有的Region进行恢复处理,RegionServer也将进行Region的批量open/close并一次性全部上报给HMaster。 该特性只支持将Region恢复到原来的RegionServer,因此该优化生效的前提为HMaster在创建TRSP时,故障或重启的RegionServer已经重新上线。因此,该特性主要用于优化HBase重启或者服务故障恢复的时长,如果是少量RegionServer发生故障,可能因为HMaster在RegionServer重新上线前已经创建了TRSP而不生效。 该内容适用于MRS 3.2.0及之后版本。
  • HBase开源增强特性:HBase双读 在HBase存储场景下,因为GC、网络抖动、磁盘坏道等原因,很难保证99.9%的查询稳定性。为了满足用户大数据量随机读低毛刺的要求,新增了HBase双读特性。 HBase双读特性是建立在主备集群容灾能力之上,两套集群同时产生毛刺的概率要远远小于一套集群,即采用双集群并发访问的方式,保证查询的稳定性。当用户发起查询请求时,同时查询两个集群的HBase服务,在等待一段时间(最大容忍的毛刺时间)后,如果主集群没有返回结果,则可以使用响应最快的集群数据。原理图如下:
共99354条