Professional Documents
Culture Documents
华为培训与认证官方网站
http://learning.huawei.com/cn/
华为在线学习
https://ilearningx.huawei.com/portal/#/portal/ebg/26
华为职业认证
http://support.huawei.com/learning/NavigationAction!createNavi?navId=_31&l
ang=zh
查找培训入口
http://support.huawei.com/learning/NavigationAction!createNavi?navId=_traini
ngsearch&lang=zh
更多信息
华为培训APP
管理节点的管理平面带宽小于10GE时,可能会影响在大集群环境下的管理操作性能,包括:
安装、升级、配置、补丁等;
Recommender 推荐组件
FusionInsight HD系统的网络划分为2个平面,即业务平面和管理平面,两个平面之间采
用物理隔离的方式进行部署,保证业务、管理各自网络的安全性。采用单平面组网时,不
区分管理平面和业务平面。
管理平面通过运维网络接入,主要用于集群管理,对外提供集群监控、配置、审计、
用户管理等服务。
业务平面通过业务平台接入,主要为用户或上层用户提供业务通道,对外提供数据存
储、业务提交和计算的功能。
此外,主备管理节点还支持设置外部管理网络的IP地址,用户可以通过外部管理网络
进行集群管理。在典型配置下,FusionInsight HD集群采用双平面组网,如下图所
示。
在当今社会,大数据已经由过去的概念阶段变成了现在应用阶段,各种大数据应用和服务
越来越多。而所有这些大数据应用与服务,都离不开下面的大数据平台。华为的大数据平
台叫FusionInsight,这个大数据平台是一个企业级的大数据存储、查询与分析的统一平台。
这个平台
深圳龙岗”智慧警务”云平台,依托华为云平台、大数据平台,聚合来自视频监控、交通
卡口、道路监控、关键场所、电子围栏等的人、车、场、路、网等信息,以人为核心,对
信息进行汇聚、整理、分析,挖掘出来的人物关系、社团发现、轨迹伴随等以可视化的形
式,呈现在时空信息管理平台上。目前深圳龙岗警务云平台的上线,警务实战效率提升很
大,办案线索量增多数十条、破案率上升50%、城区安平指数上升18.7%,情报更新周期5
天降到4小时、嫌疑人锁定时间20天降到4天、治安警情量下降18.28。
一个子网(广播域)建议不超过200个节点,为了提升集群可靠性,进行交换机堆叠设计,当
一个交换机故障时,可以通过另一个交换机进行传输。
组网要点:
集群内二层交换,即集群节点在一个子网里
适用场景:
节点数小于200的集群
相比起二层组网,三层组网的数据传输可能会需要更长的交换路径,数据传输性能略低于
二层组网;但是三层组网可以支撑更多节点的集群,随着业务发展,三层组网会越来越普
遍。
组网要点:
集群节点分布在多个子网,各子网通过三层互联
每个子网建议不超过200个节点,管理节点必须安装在同
一子网内,控制节点、数据节点可以安装在不同子网内
适用场景:
节点数大于200的集群
不推荐使用合一部署方式。
集群规划、进程部署注意事项:
KerberosServer、KerberosAdmin、LdapServer建议部署在同一节点上
Zkfc、NameNode需要部署到同一节点上
Supervisor、Logviewer需要部署到同一节点上
SparkResource需要部署到NodeManager所在节点上
UI、Nimbus需要部署到同一节点上
Flume尽量独立节点部署
这种部署方式对应LLD配置规划工具中的套
餐3
在《FusionInsight 6.5.0 Configuration
Planning Tool.xlsm》中的“基础配
置”TAB页配置套餐(*) 选项选择“套餐3:
MN&CN&DN ”
套餐描述:管理节点、控制节点、数据节
点合设
适用场景:节点数大于6小于30的集群
部署要点:
管理节点&控制节点合一部署
数据节点分离部署
说明:
数据节点尽可能的独立部署;
在集群规模小的情况下综合考虑减少节点数的配置方案;
在节点数量较少的情况下,处于平衡考虑,将管理节点和控制节点合并部署在一起,
可以节省一些节点用于数据节点,并且小集群业务量不是很大,管理节点和控制节点
合并部署在一起,可以共用计算资源,提高资源利用率;
这种部署方式对应对应LLD配置规划工具的
套餐1:
在《FusionInsight 6.5.0 Configuration
Planning Tool.xlsm》中的“基础配
置”TAB页配置套餐(*) 选项选择“套餐1:
MN&CN、DN”
套餐描述:管理节点和控制节点合设、数
据节点分设
适用场景:节点数大于30小于100的集群
部署要点:管理节点、控制节点、数据节点分离
在集群规模较大的情况下,从可靠性与性能角度考虑,包括网络IO,CPU,内存,磁盘等
的资源占用情况,需要采用此方案
这种部署方式对应LLD配置规划工具中的套
餐2:
在《FusionInsight 6.5.0 Configuration
Planning Tool.xlsm》中的“基础配
置”TAB页配置套餐(*) 选项选择“套餐2:
MN、CN、DN”
套餐描述:管理节点、控制节点、数据节
点分设
适用场景:节点数大于2000小于5000的集群
部署要点:管理节点、控制节点、数据节点分离,需要使用11个控制节点
这种部署方式对应LLD配置规划工具中的套
餐2:
在《FusionInsight 6.5.0 Configuration
Planning Tool.xlsm》中的“基础配
置”TAB页配置套餐(*) 选项选择“套餐4:
MN、CN*9、DN”,然后在该套餐上进
行自定义部署规划为11CN
套餐描述:管理节点、控制节点、数据节
点分设
这种部署方式对应LLD配置规划工具中的套
餐2:
在《FusionInsight 6.5.0 Configuration
Planning Tool.xlsm》中的“基础配
置”TAB页配置套餐(*) 选项选择“套餐4:
MN、CN*9、DN”,然后在该套餐上进
行自定义部署规划为11CN
套餐描述:管理节点、控制节点、数据节
点分设
节点OS推荐选用SAS硬盘
日志存放目录说明
根据集群规模和需要保留的天数,对所需容量进行等比例换算(最小不少于50GB)。如果需
要保存的日志量超过200GB时(以200节点保留15天的日志量为200G为例),建议将
“/var/log”分区挂载在一个独立磁盘上(请配置RAID1)。此配置规则主要适用于
ResourceManager和NameNode角色所在的控制节点(包括主备节点)。其余节点可按
照不小于50GB容量进行配置。
元数据磁盘规划注意事项:
1、元数据分区规划尽量保证每个分区独占一块磁盘,当磁盘数量不足时,再使用元数据共盘
分区
2、商用环境中,要避免元数据共盘分区,否则会出现磁盘IO抢占的问题
3、商用环境中,Zookeeper分区一定要独立一块磁盘,不能和其他分区共盘
4、所有元数据推荐选用SAS硬盘存储
所有元数据推荐选用SAS硬盘存储
所有元数据推荐选用SAS硬盘存储
所有大数据节点操作系统磁盘推荐选用SAS硬盘
根据集群规模和需要保留的天数,对所需容量进行等比例换算
(最小不少于50GB)。
如果需要保存的日志量超过200GB时(以200节点保留15天的日
志量为200G为例),建议将“/var/log”分区挂载在一个独立磁
盘上(请配置RAID1)。
数据节点推荐选用SATA硬盘
/var/log目录说明:根据集群规模和需要保留的天数,对所需容量进行等比例换算(最小
不少于50GB)。如需保存的日志量超过200GB(以200节点保留15天的日志量为200G为
例),建议将“/var/log”分区挂载在一个独立磁盘上(请配置RAID1)。此配置规则主
要适用于ResourceManager和NameNode角色所在的控制节点(包括主备节点)。其余
节点可按照不小于50GB容量进行配置。
从 support.huawei.com下载《FusionInsight 6.5.0 Configuration Planning Tool.xlsm》
LLD将会生成如下文件:
preinstall工具的配置文件(preinstall.ini和hostX.ini),用于执行preinstall,完成节
点上磁盘分区、安装必要软件包
precheck的配置文件(checkNodes.config),用于检查集群节点信息、环境信息是否
满足规划配置(preinstall使用)
OMS安装的配置文件(xx.xx.xx.xx.ini),用于安装OMS
集群安装模板配置(installTemplate.xml),用于模板方式安装集群时,导入该文件
从 support.huawei.com下载《FusionInsight 6.5.0 Configuration Planning Tool.xlsm》
LLD将会生成如下文件:
preinstall工具的配置文件(preinstall.ini和hostX.ini),用于执行preinstall,完成节
点上磁盘分区、安装必要软件包
precheck的配置文件(checkNodes.config),用于检查集群节点信息、环境信息是否
满足规划配置(preinstall使用)
OMS安装的配置文件(xx.xx.xx.xx.ini),用于安装OMS
集群安装模板配置(installTemplate.xml),用于模板方式安装集群时,导入该文件
从 support.huawei.com下载《FusionInsight 6.5.0 Configuration Planning Tool.xlsm》
LLD将会生成如下文件:
preinstall工具的配置文件(preinstall.ini和hostX.ini),用于执行preinstall,完成节
点上磁盘分区、安装必要软件包
precheck的配置文件(checkNodes.config),用于检查集群节点信息、环境信息是否
满足规划配置(preinstall使用)
OMS安装的配置文件(xx.xx.xx.xx.ini),用于安装OMS
集群安装模板配置(installTemplate.xml),用于模板方式安装集群时,导入该文件
数据分区和元数据分区配置为RaidN时,需要在执行Preinstall前,按照《FusionInsight
Preinstall适配指南》适配Raid相关命令(不同Raid卡,命令不一样)
注意:
1、生成配置文件时,需要先上传并解压软件包到指定路径,否则解压软件包后会覆盖LLD
生成的配置
2、在主备双机模式下,可以配置为主备OMS的上传路径
192.168.1.1:/opt/FusionInsight/software
192.168.1.2:/opt/FusionInsight/software
IP规划和进程部署界面的部署方式和规划的方案有关,采用不同的规划方案
(MN&CN&DN,MN&CN、DN,MN、CN、DN),进程部署方式也不同
机架名称配置规则:由字母、数字、下划线组成,不能超过200字符,需要有两级目录(例
如:/sh01/01)。
建议:主备管理节点分别部署在不同的机架上,各控制节点分别部署在不同的机架上
管理IP:配置为管理平面地址,连接运维网络管理集群。
业务IP:需要在主机上配置机器名与业务IP的映射关系(在hosts中配置),FusionInsight
会取配置有主机名的IP地址作为业务IP。
在MN&CN、DN,MN、CN、DN两种部署方案时,Flume和DataNode需要手工修改部
署方案,部署在不同的节点上;
IP规划和进程部署界面的部署方式和规划的方案有关,采用不同的规划方案
(MN&CN&DN,MN&CN、DN,MN、CN、DN),进程部署方式也不同
机架名称配置规则:由字母、数字、下划线组成,不能超过200字符,需要有两级目录(例
如:/sh01/01)。
建议:主备管理节点分别部署在不同的机架上,各控制节点分别部署在不同的机架上
管理IP:配置为管理平面地址,连接运维网络管理集群。
业务IP:需要在主机上配置机器名与业务IP的映射关系(在hosts中配置),FusionInsight
会取配置有主机名的IP地址作为业务IP。
在MN&CN、DN,MN、CN、DN两种部署方案时,Flume和DataNode需要手工修改部
署方案,部署在不同的节点上;
填写 浮动IP:与集群节点的IP处于同一网段,且唯一。即该IP地址在该网段没有节点使用。
在服务器上PING一下,如果无数据包回复,则代表还未使用。建议在IP地址规划时,专为
浮动IP规划一个网段;
在双平面组网时,OMSServer、OMWebService、LdapServer配置管理平面浮动IP地址,
其余均配置为业务平面浮动IP地址;
OMWebService还可配置为不同于管理平面和业务平面的地址,用于外部访问WebUI;
(称为三平面组网)
填写接口:浮动IP的接口必须是相应网段对应的网卡的子接口,在集群节点上使用
“ifconfig”查询,找到管理平面的网口名称(与浮动IP在同一网段的网口),接口名称同
一主机内必须唯一;
子网掩码和网关:通过“ifconfig”查询,相应网段的网卡信息上,可看到该信息;
填写 浮动IP:与集群节点的IP处于同一网段,且唯一。即该IP地址在该网段没有节点使用。
在服务器上PING一下,如果无数据包回复,则代表还未使用。建议在IP地址规划时,专为
浮动IP规划一个网段;
在双平面组网时,OMSServer、OMWebService、LdapServer配置管理平面浮动IP地址,
其余均配置为业务平面浮动IP地址;
OMWebService还可配置为不同于管理平面和业务平面的地址,用于外部访问WebUI;
(称为三平面组网)
填写接口:浮动IP的接口必须是相应网段对应的网卡的子接口,在集群节点上使用
“ifconfig”查询,找到管理平面的网口名称(与浮动IP在同一网段的网口),接口名称同
一主机内必须唯一;
子网掩码和网关:通过“ifconfig”查询,相应网段的网卡信息上,可看到该信息;
逻辑磁盘数,非物理硬盘数,指操作系统中的硬盘数(fdisk -l);
元数据分区:用于存放管理节点或控制节点数据,根据各节点的硬盘数填写
注意:1.如果实际硬盘数小于部署场景下要求的最少硬盘数,右边的分区目录可能会合并,
即一个硬盘包含多个分区;
HDFS数据盘:HDFS、Yarn、Flume使用的数据分区路径
HDFS数据路径:/srv/BigData/hadoop/data1~N/dn
Yarn数据路径:/srv/BigData/hadoop/data1~N/nm
Flume数据路径:/srv/BigData/hadoop/data1~N/flume
Streaming数据盘:固定一块数据盘;
Kafka数据盘:需要根据用户的业务模型手工定义Kafka数据盘数,最少一块;
Solr数据盘:有两种选择:Stored_On_HDFS和Stored_On_LocalDisk,选择
Stored_On_HDFS时,Solr数据存放在HDFS上,不用规划数据盘,选择
Stored_On_LocalDisk时,会为SolrServerAdmin固定分配一块数据盘,为
SolrServer1~5固定分配5块数据盘(即使只安装了SolrServer1~3,也会规划5块数据盘用
于后续扩展);
Redis数据盘:
Redis的数据分区路径,与实例数量有关,计算规则:CPU核数-2,最大为32;
为保证集群性能,建议每个磁盘上分配的Redis分区数不大于5个。
Redis的数据盘数量,当节点安装Redis实例时,会默认为Redis分配一块数据盘,需
根据业务规划进行填写;
为保证集群性能,建议每个磁盘上分配的Redis分区数不大于5个。
如:规划Redis分区1~30,则需要为Redis规划6块磁盘;
目前支持HDFS、Yarn、Kafka的参数配置,其中:dfs.datanode.data.dir、
yarn.nodemanager.local-dirs、yarn.nodemanager.log-dirs、log.dirs为相应组件的路
径配置,和磁盘规划相关,不能手动修改
参数配置规则:
DataNode:GC_OPTS:固定为-Xms2G -Xmx4G
NameNode:GC_OPTS:最小内存2G,最大内存配置规则:每50个节点增加4G,
最少4G,最多为节点内存的一半
NodeManager:yarn.nodemanager.resource.memory-mb:为节点上
NodeManager的所有的容器所分配的内存,默认配置为所在节点内存的75%
NodeManager:yarn.nodemanager.resource.cpu-vcores:可为容器分配的
CPU核数,默认配置为所在节点CPU超线程数的1.5倍。
NodeManager:RES_CPU_PERCENTAGE:NodeManager的CPU资源分配,固
定配置为100
ResourceManager:yarn.scheduler.maximum-allocation-mb:
ResourceManager的内存资源分配,默认为6GB
目前支持HDFS、Yarn、Kafka的参数配置,其中:dfs.datanode.data.dir、
yarn.nodemanager.local-dirs、yarn.nodemanager.log-dirs、log.dirs为相应组件的路
径配置,和磁盘规划相关,不能手动修改
参数配置规则:
DataNode:GC_OPTS:固定为-Xms2G -Xmx4G
NameNode:GC_OPTS:最小内存2G,最大内存配置规则:每50个节点增加4G,
最少4G,最多为节点内存的一半
NodeManager:yarn.nodemanager.resource.memory-mb:为节点上
NodeManager的所有的容器所分配的内存,默认配置为所在节点内存的75%
NodeManager:yarn.nodemanager.resource.cpu-vcores:可为容器分配的
CPU核数,默认配置为所在节点CPU超线程数的1.5倍。
NodeManager:RES_CPU_PERCENTAGE:NodeManager的CPU资源分配,固
定配置为100
ResourceManager:yarn.scheduler.maximum-allocation-mb:
ResourceManager的内存资源分配,默认为6GB
项目需求示例可以当做研讨方式 来进行 ,让学员参与进来一起讨论已经学习的内容
注:从可靠性与性能角度考虑,将管理节点的元数据盘独立磁盘部署,管理节点与数据节
点分开部署。
注:从可靠性与性能角度考虑,将管理节点的元数据盘独立磁盘部署,管理节点与数据节
点分开部署。
HLog占用空间很小,只是G级别,当数据刷入磁盘,对应的HLog就会删掉;
HLog只有在配置容灾后,并且集群的HLog没有同步到备份集群时,才会一直保留;
用户环境全量备份存放在第三方介质上;
留有部分磁盘余量用作节点退服时数据迁移或者其他数据存放使用;
抽象概念模型:一个Cluster(集群)管理多个Service(服务),每个Service包含多个
Role(角色),每个角色包含多个Instance(实例)
具体来说:一个Cluster管理多个服务,eg:Hbase服务、HDFS服务
一个Hbase服务包含HMaster角色、RegionServer角色
一个RegionServer角色包含RS实例1、RS实例2、RS实例3,实例是具体存在,是一
个真实的运行中的进程
安装流程:
准备硬件:FusionInsight HD支持通用的X86服务器和ARM服务器
准备操作系统: LinuxOS(Redhat
6.4/6.5/6.6/6.7/6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5,CentOS
6.4/6.5/6.6/6.7/6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5,suse
11.1/11.2/11.3/11.4/12.1/12.2/12.3,EulerOS 2.1/2.2/2.3/2.5,NeoKylin
6.9/7.2/7.4,Oracle 7.4/7.5/7.6);
准备工具和软件:putty、winscp、浏览器(IE9及以上版本、谷歌21及以上版本)、
解压等工具;配置规划工具(LLD工具);版本说明书等
准备数据:规划集群部署方案;规划网络参数;规划角色部署位置
解压软件包
解压FusionInsight HD软件包
上传软件包
用WinSCP工具登录将要安装Manager的服务器,将上述软件包传输到管理节点指定
目录
校验软件包
校验软件包是否正确
利用“配置规划工具”,即LLD工具,生成配置文件
填写相应参数,进行部署规划
生成preinstall需要的配置文件
生成precheck需要的配置文件
生成安装Manager需要的配置文件
生成集群安装模板
Preinstall是安装FusionInsight HD的必经的一步,务必执行。
集群的搭建往往涉及到多个节点的同时安装,如果采用手动配置的方法,耗时长,易出错。
Manager提供的一键安装方式,可屏蔽安装过程中的各种不易被发现的问题,即使由于环
境差异造成安装失败也可通过日志进行快速定位解决。
安装Manager
分为单机/双机安装Manager
双机安装Manager有HA机制,可靠性高,推荐使用
双机安装Manager
填写双机安装Manager的配置文件
可以手动填写
可以通过LLD配置规划工具自动生成(推荐)
分别在主备两台环境上面执行sh /opt/FusionInsight/software/install.sh –f
/opt/FusionInsight/software/install_oms/install.ini,进行安装Manager,先安装
主,再安装备。
安装结果显示
安装成功结果显示:出现Install Successfully字样,说明安装Manager成功;安装成
功后,可以通过浏览器来访问URL,继续进行集群安装
安装失败结果显示:如果安装失败,会显示Failed Install字样,可以通过查看对应的
日志获取失败原因,或者查看FAQ来解决问题
IE浏览器需要修改安全模式:在“设置”区域框中,取消勾选“使用SSL 2.0”和“使用
SSL 3.0”,勾选“使用 TLS 1.1”和“使用 TLS 1.2”,其他浏览器无需配置。
安装集群
通过浏览器访问URL后,可以进行集群安装
首次登陆时,需要修改密码
密码修改成功后,需要再次登陆
如果集群没有导入License文件,健康检查OMS会有告警提示信息
如果集群未导入License文件,会有“无合法license存在”的告警信息
当安装过程无法获取root权限,需要用户代为执行preset.sh脚本,并将软件
的属主改为omm用户。FusionInsight HD产品业务都是运行在omm用户下。
使用上传工具将解压后的软件包下的preset目录拷贝到所有节点上。
preset.sh 用于创建omm用户,并赋予集群安装,扩容,升级,卸载等权限。
postset.sh脚本用于回收omm用户可安装集群、扩容、升级、卸载等权限。
D
判断题
1.正确
2.正确
3.正确
多选题
4.ABCDE
注意:
服务之间存在依赖关系,当选择一个服务时,该服务依赖的所有服务都会自动被选中;
取消一个服务时,依赖该服务的所有服务都会自动被取消;
LdapServer、KrbServer两个服务不能取消,必须安装,否则集群无法安装;
注意:
服务之间存在依赖关系,当选择一个服务时,该服务依赖的所有服务都会自动被选中;
取消一个服务时,依赖该服务的所有服务都会自动被取消;
LdapServer、KrbServer两个服务不能取消,必须安装,否则集群无法安装;
注意:
服务之间存在依赖关系,当选择一个服务时,该服务依赖的所有服务都会自动被选中;
取消一个服务时,依赖该服务的所有服务都会自动被取消;
LdapServer、KrbServer两个服务不能取消,必须安装,否则集群无法安装;
HDFS架构主要包括:
NameNode:执行文件系统的元数据操作,比如打开、关闭、重命名文件或目录。
它也负责确定数据块到具体DataNode节点的映射。
DataNode:负责处理文件系统客户端的读写请求。在NameNode的统一调度下进
行数据块的创建、删除和复制。
Client:支持业务应用访问HDFS,从NameNode ,DataNode获取数据返回给业务。
和业务一起运行,提供读写API接口给业务应用。
JournalNode:文件系统共享EditLog服务器,用于存储EditLog,由三个节点组成。
通信方式:
Client与NameNode采用RPC方式通信,消息内容为元数据类操作:打开、关闭、
重命名文件,目录的创建、删除等。
Client与DataNode采用TCP数据流方式通信,消息内容为数据块。
NameNode与DataNode采用RPC方式通信,消息内容为数据块状态上报,以及操
作命令字。
ZKFC(ZooKeeper FailoverController)是Hadoop中通过ZK实现FC(故障转移)功能
的一个实用工具,作为一个ZK集群的客户端,用来监控NN的状态信息,每个运行NN的节
点必须要运行一个ZKFC。
实际授课时,可以展开对规格能力的详细说明
容量角度,当前每对NameNode 支持的文件数量不超过1.5亿,如果业务规划超过,则需
要考虑使用如下方案优化:
使用SmallFS特性自动合并文件。(提供小文件后台合并功能,能够自动发现系统中的小文
件(通过文件大小阈值来判断),在闲时进行合并,并把元数据外置到第三方KV
系统来降低NameNode压力,同时提供新的FileSystem接口,让用户能够透明的对这些小
文件进行访问。
使用联邦Federation特性扩容NameNode。(Federation即为“联邦”,该特性允
许一个HDFS集群中存在多组Namenode同时对外提供服务,分管一部分目录(水平
切分),彼此之间相互隔离,但共享底层的Datanode存储资源。)
新建HDFS集群。
性能角度,在推荐硬件配置下,NameNode的OPS性能,全写大约3K,全读大约11K左右,
如果业务需要更好的OPS性能,则需要考虑。
NameNode数据盘采用SSD。
JournalNode数据盘采用SSD。
如果HDFS中有1亿小文件,则默认所有DataNode存储3亿副本,则DataNode需要个数至
少建议60左右。
如果HDFS规划存储1P数据,默认3副本,总存储容量则需要3P空间。建议存储容量低于
80%的情况下。假设每个DataNode 10个4T磁盘,则DataNode,至少需要95个左右。
HDFS 安全模式safemode的理解:安全模式是hadoop的一种保护机制,用于保证集群中
的数据块的安全性,当集群启动的时候,会首先进入安全模式。当系统处于安全模式时会
检查数据块的完整性,这时,不允许客户端进行任何修改文件的操作,包括上传文件,删除
文件,重命名,创建文件夹等操作。
Namespace(命名空间):由目录、文件和块组成,它支持所有命名空间相关的文件操作,
如创建、删除、修改,查看所有文件和目录。
FusionInsight Manager是一个分布式系统管理框架,管理员可以从单一接入点操控分布 式
集群,包括系统管理、数据安全管理和数据治理。
依赖HDFS的服务在后续对应组件介绍时作相应介绍。
Namespace(命名空间):由目录、文件和块组成,它支持所有命名空间相关的文件操作,
如创建、删除、修改,查看所有文件和目录。
HDFS Federation使用了多个独立的NameNode/NameSpace使得HDFS的命名服务能够
水平扩展。所有的Namenodes是联邦的,也就是说,他们之间相互独立且不需要互相协
调,各自分工,管理自己的区域。
HDFS Federation使用了多个独立的NameNode/NameSpace使得HDFS的命名服务能够
水平扩展,在一个集群中需要唯一的名字空间还是多个名字空间,核心问题是名字空间中数
据的共享和访问问题。 使用全局唯一的名字空间是解决数据共享和访问的一种方法 在多个
名字空间下,还可以使用Client Side Mount Table方式做到数据共享和访问。
当同一份数据,重复读取的次数较少时,建议设置为true,使得缓存能够被其他操作
使用。重复读取的次数较多时,设置为false能够提升重复读取的速度
fs.datanode.handler.count、dfs.namenode.handler.count
调大对应的线程数会增大内存消耗,不宜过度调整这个值
fs.trash.checkpoint.interval
应小于等于fs.trash.interval的值。检查点程序每次运行时都会创建一个新的检查点
并会移除fs.trash.interval分钟前创建的检查点
如果是HDFS是处于安全模式切换到hdfs用户,执行hadoop dfsadmin -safemode leave。
设置目录/文件的标签表达式
Java API设置方式通过DistributedFileSystem实例化对象调用setLabelExpression(String
src, String labelExpression)方法。src为HDFS上的目录或文件路径,“labelExpression”
为标签表达式。
HDFS的异构分级存储框架提供了RAM_DISK、SSD、DISK、ARCHIVE四种存储类型的存
储设备,以对应DataNode上可能存在的不同的存储介质。
RAM_DISK是一种由内存虚拟的硬盘,具有最高的读写性能。其容量受限于内存大小,通
常容量很小,且掉电可能丢失数据。
SSD即固态硬盘,具有较高的读写性能。但通常存储容量较小,单位存储成本比普通机械
硬盘高。
DISK即普通机械硬盘,是HDFS用于保存数据的主力存储类型。
ARCHIVE类型代表高密度低成本的存储介质,读写性能相对较差,通常装配于计算能力较
低的节点,用于大容量非热点数据存储。
磁盘IO是集群发展的最大瓶颈,通过DN的I/O隔离实现高效的IO利用。
热数据:是需要被计算节点频繁访问的在线类数据。
冷数据:是对于离线类不经常访问的数据,比如企业备份数据、业务与操作日志数据、话
单与统计数据。
答案:
ABD
AB
Yarn 分层结构的本质是 ResourceManager。这个实体控制整个集群并管理应用程序向基
础计算资源的分配。ResourceManager 将各个资源部分(计算、内存、带宽等)精心安
排给基础 NodeManager(Yarn 的每节点代理)。ResourceManager 还与 Application
Master 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。在此上
下文中,Application Master 承担了以前的 TaskTracker 的一些角色,
ResourceManager 承担了 JobTracker 的角色。
yarn.nodemanager.vmem-pmem-ratio:默认值为5,为容器设置内存限制时虚拟内存
跟物理内存的比值。容器分配值使用物理内存表示的,虚拟内存使用率超过分配值的比例
不允许大于当前这个比例。
yarn.nodemanager.resource.cpu-vcores:服务端参数,建议将此配置设定在物理核*
(1.5~2)*yarn.nodemanager.resource.percentage-physical-cpu-limit,如果上层应
用是计算型应用,建议取值1.5;如果上层计算应用对CPU的计算能力要求不高,中间括号
可以取值为2倍的逻辑CPU。
yarn.nodemanager.resource.percentage-physical-cpu-limit,服务端参数,表示该节
点上Yarn可使用的物理CPU百分比。默认是100,即不进行CPU控制,Yarn可以使用节点
全部CPU。该参数只支持查看,可通过调整Yarn的RES_CPUSET_PERCENTAGE参数来修
改本参数值。
给出的这些参数都是在Yarn服务配置页面可配的
增加物理内存yarn.app.mapreduce.am.resource.mb的值,默认为1536M。这个参数为
客户端参数,需要在客户端的mapred-site.xml里面修改
增加比例yarn.nodemanager.vmem-pmem-ratio,默认为5.0。这个参数为服务端参数,
需要在Yarn的服务端进行修改。
节点标签用于描述一类节点。利用节点标签,管理员可以使用类似的配置文件对节点进行
分组(基于硬件、软件、组织或工作量等)。YARN的应用也可以利用这些标签指定在集群
中的运行位置。
节点标签可被分配至集群内的节点。用户可以将节点标签与capacity调度模块队列配合使
用,指定各队列可以访问的节点标签。当某一队列配合使用了节点标签后,该队列提交的
所有应用都只能在带有指定标签的节点上运行。
答案:
ABD
D
Hive是Apache的Hadoop项目的子项目,解析和计算处理结构化的数据。
DBService是一个具备高可靠性的传统关系型数据库,为Hive、Hue、Spark组件提供元数
据存储服务。
上述规格参数仅作为参考,并不代表不能超过,但如果业务场景有超过这些规格,那么对
性能影响比较大,需要在性能和业务能力上进行权衡。
Hive是Apache的Hadoop项目的子项目,Hive利用HDFS作为其文件存储系统。Hive通过
解析和计算处理结构化的数据,Hadoop HDFS则为Hive提供了高可靠性的底层存储支持。
Hive数据库中的所有数据文件都可以存储在Hadoop HDFS文件系统上,Hive所有的数据
操作也都是通过Hadoop HDFS接口进行的。
Hive所有的数据计算都依赖于MapReduce。MapReduce也是Apache的Hadoop项目的
子项目,它是一个基于Hadoop HDFS分布式并行计算框架。Hive进行数据分析时,会将
用户提交的HQL语句解析成相应的MapReduce任务并提交MapReduce执行。
Hive的MetaStore(元数据服务)处理Hive的数据库、表、分区等的结构和属性信息,这
些信息需要存放在一个关系型数据库中,由MetaStore维护和处理。在FusionInsight HD
产品中,这个关系型数据库由DBService组件维护。
Hive可以将Elasticsearch作为其扩展的文件存储系统。Hive通过集成Elasticsearch提供的
Elasticsearch-Hadoop插件,建立外表,将表数据存储在Elasticsearch里,实现Hive读取
和写入Elasticsearch索引数据的目的。
最好增加维护命令的效果,然后增加解释性词语
Hive的维护主要通过Manager界面进行
也可通过一些简单的命令来查看hive服务的情况
执行beeline,hdfs等命令需要先安装FI HD客户端
dfs.datanode.drop.cache.behind.reads
当同一份数据,重复读取的次数较少时,建议设置为true,使得缓存能够被其他操作
使用。重复读取的次数较多时,设置为false能够提升重复读取的速度
分区支持多层,即对多个字段分区,支持动态分区;
静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行
判断。详细来说,静态分区的列实在编译时期,通过用户传递来决定的;动态分区只有在
SQL 执行时才能决定。
单表的分区要尽量控制在1万以内,分区太多,会导致产生很多小文件,获取分区信息耗时
等问题;
现在社区对于输入是小文件是没有自动合并功能,提供的合并命令,不够实用, 比如一个
表有很多分区,需要对每个分区执行合并操作,我们暂时不建议用户用。
对于输出,现在hive有参数控制多小的文件是小文件,对于输出的小文件是否要进行合并
的参数,如下。
对于顺序执行的作业链,只有最后一张表的数据需要持久化,中间临时结果用完就删除的
情况,可以在最后生成结果表之前开启下面参数,防止之前的作业也会生成合并任务使作
业变慢。
答案:
ABC
D
Master又叫HMaster,在HA模式下,包含主用Master和备用Master。
主用Master:负责HBase中RegionServer的管理,包括表的增删改查;RegionServer的
负载均衡,Region分布调整;Region分裂以及分裂后的Region分配;RegionServer失效
后的Region迁移等。
备用Master:当主用Master故障时,备用Master将取代主用Master对外提供服务。故障
恢复后,原主用Master降为备用。
Client使用HBase的RPC机制与Master、RegionServer进行通信。Client与Master进行管
理类通信,与RegionServer进行数据操作类通信。
RegionServer负责提供表数据读写等服务,是HBase的数据处理和计算单元,
RegionServer一般与HDFS集群的DataNode部署在一起,实现数据的存储功能。
ZooKeeper为HBase集群中各进程提供分布式协作服务。各RegionServer将自己的信息注
册到Zookeeper中,主用Master据此感知各个RegionServer的健康状态。
ThriftServer:提供thrift接口,作为JDBC和ODBC的服务端,并将HBase和其他应用程序
集成起来。
Flush过程:当MemStore满了或者到了一定的时间以后会Flush成一个StoreFile(底层实
现是HFile)
HBase利用Hadoop HDFS作为其文件存储系统。HBase位于结构化存储层,Hadoop
HDFS为HBase提供了高可靠性的底层存储支持。除了HBase产生的一些日志文件,HBase
中的所有数据文件都可以存储在Hadoop HDFS文件系统上。
HRegionServer以Ephemeral node(临时节点)的方式注册到ZooKeeper中。其中
ZooKeeper存储HBase的如下信息:HBase元数据、HMaster地址。
HMaster通过ZooKeeper随时感知各个HRegionServer的健康状况,以便进行控制管理。
样例中带了两个不同的参数
第一个是simple,查询结果只会显示RegionServer基本状态,正常工作节点数,坏
节点数,正常工作节点每秒请求数,上线Region数,堆内存状态等。
第二个是detailed,查询结果不光显示simple中结果,还会显示每台RegionServer
中Region信息。
HBase的compact是针对HRegion的HStore进行操作的。compact操作分为major和
minor两种,major会把HStore所有的HFile都compact为一个HFile,并同时忽略标记为
delete的KeyValue(被删除的KeyValue只有在compact过程中才真正被"删除"),可以
想象major会产生大量的IO操作,对HBase的读写性能产生影响。minor则只会选择数个
HFile文件compact为一个HFile,minor的过程一般较快,而且IO相对较低。
Hbase Split 是一个很重要的功能,HBase 通过把数据分配到一定数量的 Region 来达到
负载均衡的。当 Region 管理的数据过多时,可以通过手动或自动的方式触发 HBase Split
将一个 Region 分裂成两个新的子 Region。
HBase的Write Ahead Log (WAL,Write-ahead Log )以下简称WAL,提供了一种高并
发、持久化的日志保存与回放机制。每一个业务数据的写入操作(PUT / DELETE)执行前,
都会记账在WAL中。
RegionServer上有一个 Write-ahead Log (以下简称WAL),数据会持续的默认写到这个
文件中。它包含了所有已经提交到RS的,已经保留在memstore中但是尚未flush到
storefile的数据编辑历史。在数据写入的过程中,默认也会将所有的相关操作同步到WAL
里面,可以调整相关参数来提高写入速度。
说明: 主HMaster的HeapSize为4G的时候,HBase集群可以支持100000Region数的规
模。根据经验值,单个RegionServer的HeapSize不建议超过32GB。
A
ABCD
Kafka是一个分布式、分区化、多副本的消息发布-订阅系统。生产者(Producer)将消息
发布到Kafka主题(Topic)上,消费者(Consumer)订阅这些主题并消费这些消息。在
Kafka集群上一个服务器称为一个Broker。对于每一个主题,Kafka集群保留一个用于缩放、
并行化和容错性的分区(Partition)。每个分区是一个有序、不可变的消息序列,并不断
追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序(Offset)的序列化编
号。
KafkaUI是Kafka的WebUI监控工具。
num.partitions:2:建议在创建Topic时根据性能需求规划该参数,使用客户端命令行去规
划创建,不建议由Kafka自动创建。
num.replica.fetchers:一般来说如果发现Partition的ISR当中只有自己一个Partition,且
长时间没有新的Replica增加进来时,单个broker上的partition数量较多(上千个以上)时
就可以考虑适当的增大这个参数加快复制进度。
producer.type,async异步模式发送性能较高可靠性低,在异常情况下会丢失部分数据,
同步发送指数据同步实时发送最新的消息,异步发送指累积一定量的消息再发送。
request.required.acks:对于概率统计类应用即使丢失少量数据也不影响统计分析结果建
议配置acks为0,可以获得较高的性能;对于对消息要求较高的应用配置acks为all可以获
得较高的可靠性但是会大大降低性能。
分区中的所有副本统称为AR(Assigned Repllicas)。所有与leader副本保持一定程度同
步的副本(包括Leader)组成ISR(In-Sync Replicas),ISR集合是AR集合中的一个子集。
Kafka的broker和consumer都会定期地向leader broker发送FETCH请求去获取数据。
答案:
B
AB
Cluster Manager:集群管理器,管理集群中的资源。Spark支持多种集群管理器,Spark
自带的Standalone集群管理器、Mesos或Yarn。华为Spark集群默认采用Yarn模式。
Application:Spark应用,由一个Driver Program和多个Executor组成。
Driver Program:是Spark应用程序的主进程,运行Application的main()函数并创建
SparkContext。负责应用程序的解析、生成Stage并调度Task到Executor上。通常
SparkContext代表Driver Program。
Executor:在Work Node上启动的进程,用来执行Task,管理并处理应用中使用到的数
据。一个Spark应用一般包含多个Executor,每个Executor接收Driver的命令,并执行一
到多个Task。
Worker Node:集群中负责启动并管理Executor以及资源的节点。
Job:一个Action算子(比如collect算子)对应一个Job,由并行计算的多个Task组成。
Stage:每个Job由多个Stage组成,每个Stage是一个Task集合,由DAG分割而成。
Task:承载业务逻辑的运算单元,是Spark平台中可执行的最小工作单元。一个应用根据
执行计划以及计算量分为多个Task。
JobHistory可以监控查看历史任务,JDBCServer用来连接数据库
关注两个信息:关注Job的执行时间,Job执行结果成功或失败。Job Task数目用来考虑当
前Job的执行性能,考虑Task如何拆分。
DAG图表示在Stage中做了哪些操作,以及Stage执行的时间需要关注。
内存中缓存的数据量和硬盘中缓存的数据量的对比情况可以进行查看。两种情况会写
Storage。
在分析性能慢的问题,通常需要查看到任务中到底哪个job, 哪个Stage,哪个task慢,找到
具体的代码行,分析业务逻辑。
接收器调优:Streaming中已有多种数据源的接收器,例如Kafka、Flume、MQTT、
ZeroMQ等,其中Kafka的接收器类型最多,也是最成熟一套接收器。
处理器调优:Streaming的底层由Spark执行,因此大部分对于Spark的调优措施,都可以
应用在Streaming之中,例如数据序列化、配置内存、设置并行度。
答案:
ABC
ABC
yarn-session:在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里
提交。这个flink集群会常驻在yarn集群中,除非手工停止。
yarn-cluster:每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便
管理。任务执行完成之后创建的集群也会消失。
最好增加维护命令的效果,然后增加解释性词语
算子层次:一个算子、数据源和sink的并行度可以通过调用setParallelism()方法来指定。
执行环境层次:Flink程序运行在执行环境中。执行环境为所有执行的算子、数据源、data
sink定义了一个默认的并行度。执行环境的默认并行度可以通过调用setParallelism()方法
指定。
客户端层次:并行度可以在客户端将job提交到Flink时设定。对于CLI客户端,可以通过“-
p”参数指定并行度。
系统层次:在系统级可以通过修改Flink客户端conf目录下的“flink-conf.yaml”文件中的
“parallelism.default”配置选项来指定所有执行环境的默认并行度。
配置JobManager内存:JobManager负责任务的调度,以及TaskManager、RM之间的
消息通信。当任务数变多,任务平行度增大时,JobManager内存都需要相应增大。
配置TaskManager个数:每个TaskManager每个核同时能跑一个task,所以增加了
TaskManager的个数相当于增大了任务的并发度。在资源充足的情况下,可以相应增加
TaskManager的个数,以提高运行效率。
配置TaskManager Slot数:每个TaskManager多个核同时能跑多个task,相当于增大了
任务的并发度。但是由于所有核共用TaskManager的内存,所以要在内存和核数之间做好
平衡。
配置TaskManager内存:TaskManager的内存主要用于任务执行、通信等。当一个任务
很大的时候,可能需要较多资源,因而内存也可以做相应的增加。
答案:
ABC
ABCD
bulk批量写入:如果业务场景支持将一批数据聚合起来,一次性写入Elasticsarch,那么尽
量采用bulk的方式,bulk批量写入的速度远高于一条一条写入大量document的速度。
多线程写入:单线程发送bulk请求是无法最大化Elasticsearch集群写入的吞吐量的。如果
要利用集群的所有资源,就需要使用多线程并发将数据bulk写入集群中。多线程并发写入
同时可以减少每次底层磁盘fsync的次数和开销。推荐使用CPU核数的2倍线程数。
修改索引刷新时间及副本数:默认“index.refresh_interval”为“1s”,即每秒都会强制
生成1个新的segments文件,增大索引刷新时间,可以生成更大的segments文件,有效
降低IO并减少segments merge的压力,该配置项可以建索引时指定。
修改merge参数以及线程数:Elasticsearch写入数据时,refresh刷新会生成1个新的
segment,segments会按照一定的策略进行索引段合并merge。merge的频率对写入和
查询的速度都有一定的影响,如果merge频率比较快,会占用较多的IO,影响写入的速度,
但同时segment个数也会比较少,可以提高查询速度。所以merge频率的设定需要根据具
体业务去权衡,同时保证写入和查询都相对快速。
修改事务日志translog参数:默认设置下,translog 的持久化策略是每个请求都flush,这
样能保证写操作的可靠性,但是对性能会有很严重的影响,实际测试发现如果使用默认设
置进行导数据磁盘IO会持续占满。如果系统可以接受一定几率的数据丢失,可以通过调整
translog 持久化策略、周期性和一定大小的时候 flush,能大大提升导入性能。该配置项
可以建索引时指定。
B
D
FusionInsight Manager是FusionInsight HD的分布式系统管理框架,即是一个运维管理
系统,为部署在集群内的服务提供统一的集群管理能力
各个服务(eg:HDFS、HBASE、YARN、Spark等 )均由Manager统一管理,服务的生
命周期、配置等各种操作均通过Manager来完成
Manager对外提供了REST/SNMP/SYSLOG接口,可用于被集成
应用层是客户自己写的业务逻辑
易部署:基于WEB页面的安装部署能力,提供向导式安装、模板式安装
易维护:对于各个服务的各种操作均可以通过WEB页面来完成,并且每个重要操作都有审
计日志记录,同时提供了可自行定制的监控界面
故障易恢复:提供有效故障解决方法和告警恢复指导、日志收集工具
业务易开发:可以从WEB页面下载各个服务的客户端,并支持一键式客户端安装,提供了
可执行的demo案例,并有相关资料进行辅助说明
高可靠性:管理节点提供双机HA机制,当主机有资源异常时,能够自动进行主备切换
高安全性:非root用户运行,避免造成OS重要文件误删除;所有消息信通过HTTPS加密、
所有密码全部经过加密
自调整:环境部署后,客户可自行通过CPI等资料完成集群的扩容、减容操作,均基于WEB
操作
GUI:可以通过WEB 页面来完成安装服务、集群管理、用户管理、升级管理、性能监控、
告警管理、配置管理、备份管理、北向接口等各种操作;
Shell: Manager提供了多种shell工具,可以完成系统恢复、日志采集、时间管理、HA管
理等功能;
各个模块相互协作,来完成安装服务、升级服务、集群管理、用户管理、升级管理、
性能监控、告警管理、配置管理、备份管理、北向接口、系统恢复、日志采集、时间
管理、HA管理等功能;
Manager引入角色的概念,采用RBAC的方式对系统进行权限管理,集中呈现和管理系统
中各组件零散的权限功能。
将各个组件的权限以权限集合(即角色)的形式组织,形成统一的系统权限概念。
这样一方面对普通用户屏蔽了内部的权限管理细节,另一方面对管理员简化了权限管理的
操作方法,提升了权限管理的易用性和用户体验。
Manager可监控所有组件的运行情况并实时上报告警,界面帮助提供性能指标和告警恢复
的详细方法,帮助用户快速解决故障。
单点登录是指访问一个系统中的多个应用程序时,只需要登录一次,不用在访问每个应用
程序时再次登录。本系统中实现了FusionInsight HD系统中FusionInsight Manager
WebUI、组件WebUI之间的单点登录,使得用户在这些WebUI之间跳转时只需要登录一
次,提升了用户体验。
审计日志
审计日志记录每一项用户业务操作。
支持日志查询、导出。
为用户提供事后追溯、定位问题原因及划分事故责任的重要手段。
FusionInsight多租户特性:
集群为租户划分为不同的资源池,各类应用部署或使用特定资源池,不能使用资源池
外的资源
设置租户cpu,内存,I/O, 存储等资源计划,支持多种的调度模型
提供租户资源的使用统计和报表,为资源计划和计费提供依据
集成RBAC的多租户资源访问,可以为用户/用户组定义多种不同的角色类型
第6步:说明: 如果选中的用户组绑定了角色,用户将获得对应角色中的权限。 安装
FusionInsight Manager后默认生成的部分用户组包含特殊权限,请根据界面上用户组描
述信息选择正确的用户组。 如果已有的用户组无法满足使用,可以单击“创建新用户组”
先创建用户组。
第8步:说明: 创建用户时,如果用户从用户组获得的权限还不满足业务需要,则可以再
分配其他已创建的角色。为新用户分配角色授权,最长可能需要3分钟时间生效。如果从用
户组获得的权限已满足使用,则无需再添加角色。若用户既没有加入用户组也没有设置角
色,通过此用户登录FusionInsight Manager后,用户将无权查看或操作。
创建用户时添加角色可细化用户的权限。如果已有的角色无法满足使用,可以单击“创建
新角色”先创建角色。
Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”,后来沿用作为安
全认证的概念,使用Kerberos的系统在设计上采用“客户端/服务器”结构与AES等加密技
术,并且能够进行相互认证(即客户端和服务器端均可对对方进行身份认证)。可以用于
防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥
管理的系统。
KDC:kerbers 密钥分发中心
HDFS:FusinInsight集群中HDFS服务
JDK:java开发工具
HADOOP-COMMON:hadoop开发包共用库
Application:二次开发程序或者某个服务(hbase)的应用程序
Kerberos认证原理
1.KRB_AS_REQ 用户登录到客户端工作站请求服务端的某个应用。工作站会向认证服务器发送一个
消息请求一张票据授权票(TGT),TGT主要是用来建立应用程序与KDC之间的信任关系。
2.KRB_AS_REP 认证服务器验证用户的访问(例如通过用户名和密码)之后,会创建一个TGT和会话
密钥(Session key,由服务端生成,实际为某个账户的加密后的密码),认证服务器会将二者使用
Session key加密后,发送给客户端工作站。工作站收到该响应消息后,如果使用客户端的Session
key解密该消息成功,那么工作站即可获取到消息中的TGT用于请求服务票据(ST)。
3.KRB_TGS_REQ 当应用者需要访问服务端的某个应用,工作站客户端会给票据授权服务器(TGS)
发送一条请求消息,该消息中携带了客户端应用者名称,域名,和时间戳等。
TGS全称为Ticket Granting-Server,即KDC中可以分发ST的内部服务。TGS不等同于kerberos,也
不等同于KDC,仅是其中的一个服务模块。
4.KRB_TGS_REP 授权服务器解析该请求消息,验证请求通过后,为指定的服务端应用创建一个服务
票据,该服务票据包含客户端应用名称、客户端IP地址、域名和票据存活期。
5.KRB_AP_REQ 客户端应用程序向服务端发送一个请求,该请求携带ST,服务端校验ST通过后,会
允许本次应用程序访问指定的资源。
6.KRB_AP_REP 如果客户端需要等待服务端的响应消息,那么服务端会返回该消息给客户端,该消
息可选。
备注:KRB_XX_XXX表示的是kerberos认证流程中的消息名称
该流程图中的“认证服务器”和“票据授权服务器”均指Kerberos服务中的KeberosServer角色,
“服务端”指的是客户端需要访问的服务,例如HDFS服务。
官网网址: http://www.openldap.org/
有助于更好的了解我们的用户在数据库中的呈现方式,更好理解用户在组件服务中是怎么
使用的,如何与权限关联
在Ldap文件结构中, 目录条目都被排列在一个分层树形结构。一般来说,这种结构反映了
地域和组织界限。
代表国家的条目出现在树的顶端。
它们下面是代表省和国家组织的条目。
再下面可能是代表组织单位、人、打印机、文档或者其他任何东西,这种层级关系如图1.1
所示。
对于Ldap的关键要素可以参考官网:
http://www.openldap.org/doc/admin24/intro.html中的开发指南,其中详细介绍了每
个要素的概念
这里简单介绍几个:
CN = Common Name
OU = Organizational Unit
DC = Domain Component
请将此处改为本章标题
约束:
1、Serde必须使用“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”
2、必须使用insert语句分别向该类型表导入数据,列加密特性才能生效
3、文件格式仅支持TEXTFile和SequenceFile
Hive支持对表的某一列或者多列进行加密;在创建hive表时,可以指定要加密的列和加密
算法。
技术背景:
在往表文件中写入数据时,先对表的每个字段的数据进行加密,再将加密后的数据写入表
文件中;
从表文件中读出数据时,读取的文件是加密后的数据,需要先解密,才能正常使用;
而加密需要的密钥,是单独存储在HDFS上的。
步骤1语句说明:
指定数据序列化和反序列化到表文件中的处理类
column.encode.columns
该参数指定要加密的列,示例中指定了phone,address两个字段要加密
column.encode.classname
指定加密需要的处理类
思考题1:以通过WEB 页面来完成安装服务、集群管理、用户管理、升级管理、性能监控、
告警管理、配置管理、备份管理、北向接口等各种操作
思考题2:
Kerberos认证原理
1.KRB_AS_REQ 用户登录到客户端工作站请求服务端的某个应用。工作站会向认证服务器
发送一个消息请求一张票据授权票(TGT),TGT主要是用来建立应用程序与KDC之间的信任关
系。
2.KRB_AS_REP 认证服务器验证用户的访问(例如通过用户名和密码)之后,会创建一个
TGT和会话密钥(Session key,由服务端生成,实际为某个账户的加密后的密码),认证服
务器会将二者使用Session key加密后,发送给客户端工作站。工作站收到该响应消息后,如
果使用客户端的Session key解密该消息成功,那么工作站即可获取到消息中的TGT用于请求
服务票据(ST)。
3.KRB_TGS_REQ 当应用者需要访问服务端的某个应用,工作站客户端会给票据授权服务器
(TGS)发送一条请求消息,该消息中携带了客户端应用者名称,域名,和时间戳等。
TGS全称为Ticket Granting-Server,即KDC中可以分发ST的内部服务。TGS不等同于
kerberos,也不等同于KDC,仅是其中的一个服务模块。
4.KRB_TGS_REP 授权服务器解析该请求消息,验证请求通过后,为指定的服务端应用创建
一个服务票据,该服务票据包含客户端应用名称、客户端IP地址、域名和票据存活期。
5.KRB_AP_REQ 客户端应用程序向服务端发送一个请求,该请求携带ST,服务端校验ST通
过后,会允许本次应用程序访问指定的资源。
6.KRB_AP_REP 如果客户端需要等待服务端的响应消息,那么服务端会返回该消息给客
户端,该消息可选。
判断题
1F2F3F
多选题
ABD
现代企业的数据平台在向集中化和云化方向发展,企业级大数据平台需要满足:
不同的组织和部门在平台上同时存放不同类型和格式的数据,运行不同类型的应用和
作业(分析、查询、流处理等)。
某些类型的用户(例如银行、政府单位等)对数据安全非常关注,很难容忍将自己的
数据与其他用户放在一起。
这给大数据平台带来了以下挑战:
合理地分配和调度资源,以支持多种应用和作业在平台上平稳运行。
对不同的用户进行严格的访问控制,保证数据和业务的安全。
因此,需要用一种逻辑实体,分配并调度出用户需要的资源和服务,来支持该用户运行的
应用和作业,并将该用户的数据单独存放;在大数据平台上可以运行多个逻辑实体来支持
多个用户的不同需求。
对此,华为FusionInsight HD企业级大数据平台提供了完整的企业级大数据多租户解决方
案。
383
一个角色可以有多个权限,一个用户可以绑定多个角色。
对于以用户为核心的大数据平台,用户直接访问并使用全部的资源和服务。
用户的应用可能只用到集群的部分资源,资源利用效率低。
不同用户的数据可能存放在一起,难以保证数据安全。
对于以租户为核心的大数据平台,用户通过访问租户来使用需要的资源和服务。
按照应用需求分配和调度出需要的资源,以租户来统一使用,资源利用效率高。
用户通过分配不同的角色获得使用不同租户资源的权限,以保障访问安全。
不同的租户之间数据隔离,以保证数据安全。
租户是FusinonInsight大数据平台的核心概念,围绕租户实现资源管理,访问控制,资源
使用统计。使传统的以用户为核心的大数据平台向多租户平台转变,更好的适应现代企业
多租户应用环境。
运行在大数据平台之上的服务可以分为两类:第一类主要指Yarn和HDFS,他们是多租户存
在的基础,作为租户资源的提供者和管理者。租户需要向它们申请资源才能在大数据平台
上运行作业。所以这类服务与租户的关系是作为资源提供者(Resource Provider);其它
服务(Hive,Spark, HBase)面向不同的使用场景和业务需求,这些服务可以被多个租户共
享使用(Hive,Spark)或者能被某个租户独占使用(HBase)。 一个服务能不能被多个租
户共享使用主要看服务运行过程中是否能对多个租户做到资源隔离。FusionInsight 支持定
义租户与服务的关系,分为共享和独占两种模式。如果一个租户与服务建立的共享模式,
其它租户也可以关联和使用这个服务;如果租户与服务建立了独占模式,服务就不能被其
它租户使用。
TMS: Tenant Manager System
FusionInsight Manager实现全图形化的多租户管理界面:通过树形结构实现多级租
户的管理和操作,将当前租户的基本信息和资源配额集成在一个界面中,方便运维和
管理。
层级式的租户管理
FusionInsight Manager支持层级式的租户管理,可以为租户进一步添加子租户,实
现资源的再次配置。
简化的权限管理
创建租户时,系统自动创建租户对应的角色,可以添加用户并绑定该角色为其他用户
授权,以使用该租户的资源。
清晰的资源管理
资源自主配置(增删改查)和资源使用统计(实时和历史监控)。
可管理的组件
MapReduce、Hive、Spark、SparKSQL、SparStreaming、Flink
可管理资源类型
内存(GB)、CPU(VCPU)
可使用的调度器
公平、容量、超级(推荐)
支持资源配额类型
Min、Max、Reserve(只有超级支持)
配额设置方式
百分比,绝对值(只有超级支持)
是否支持分级设置
支持
*为保证Hadoop计算存储本地化的原则,计算资源和存储资源的标签通常配合使用,保证
指定的应用,计算和数据都在指定的节点上,不会存在跨节点访问
多个节点构成资源池,租户队列根据任务需求关联合适的资源池,使计算资源合理配置。
Yarn任务队列支持一种调度策略,称为标签调度(Label Based Scheduling)。此策略通
过为Yarn集群的计算节点(Yarn NodeManager)创建节点标签(Node Label),从逻
辑上对计算节点进行分区,添加到不同的资源池中,租户队列根据任务需求关联合适的资
源池。
集群中有40个以上的节点,根据各节点的硬件和网络配置,分别用Normal、HighCPU、
HighMEM、HighIO为四类节点创建标签,添加到四个资源池中,资源池中的各节点性能。
任务队列只能使用所关联的资源池里的计算节点。
普通的任务队列关联资源池A,使用硬件和网络配置一般的Normal节点。
计算密集型的任务队列关联资源池B,使用具有高性能CPU的HighCPU节点。
内存密集型的任务队列关联资源池C,使用具有大量内存的HighMEM节点。
IO密集型的任务队列关联资源池D,使用具有高性能网络的HighIO节点。
在FusionInsight HD中,Yarn任务队列与特定的资源池关联,可以更有效地使用资源池中
的资源,保证节点性能充足且互不影响。
FusionInsight Manager中最多支持50个资源池。系统默认包含一个“Default”资源池。
静态服务池用来指定服务资源的配置,针对不基于Yarn运行的应用以及各个服务。
在服务级别上,FusionInsight HD静态服务池对各服务可使用的资源进行统一管理:
限制服务使用的资源总量,支持动态地管理FTP-Server、Flume、HBase、HDFS、
Solr和Yarn在部署节点可使用的CPU、I/O和内存总量。
实现服务级别的资源隔离,可将集群中的服务与其他服务隔离,使一个服务上的负载
对其他服务产生的影响有限。
思考题1:创建租户自动创建对应角色,此角色包含使用该租户资源和服务的权限。用户通
过绑定租户对应的角色取得使用租户资源和服务的权限。租户和用户之间是多对多的关系,
一个租户的资源和服务可以由多个用户使用,一个用户也可以使用多个租户的资源和服务。
一个用户可以绑定多个租户对应的角色,不同的用户可以绑定同一个租户对应的角色。
思考题2:创建租户自动创建对应角色
本次培训主要对常用操作做简单介绍,不对某个特性进行深入讲解。
FusionInsight Manager是FusionInsight HD的分布式系统管理框架,即是一个运维管理
系统,为部署在集群内的服务提供统一的集群管理能力
各个服务(eg:HDFS、HBASE、YARN、Spark等 )均由Manager统一管理,服务的生
命周期、配置等各种操作均通过Manager来完成
Manager对外提供了REST/SNMP/SYSLOG接口,可用于被集成
应用层是客户自己写的业务逻辑
FusionInsight HD 提供大数据处理环境,基于社区开源软件增强,按照场景选择业界最佳
实践 ;
FusionInsight Manager是一个分布式系统管理框架,管理员可以从单一接入点操控分布
式集群,包括系统管理(OM/NTP/灾备)、数据安全管理,是整个FusionInsight平台的
基石。
Putty是一个出色的远程登录工具。使用简介:
把Putty下载到机器上,双击putty.exe,就出现如图的配置界面。
在“Protocol”单选栏中选择使用的协议,一般是telnet或ssh,这取决于服务器提供
的服务。
在“Saved Session”输入栏中输入任务的名字,单击“Save”按钮,就可以把任务
配置保存起来了。
配置完成后单击“Open”按钮,出现登录界面,就可以使用Putty连接Linux主机了。
概念介绍
服务、角色、实例
服务:能够对外提供一种功能,例如HDFS。也称为组件
角色:服务内部划分角色,例如HDFS拥有NameNode和DataNode角色
实例:角色部署在一个主机上,称为一个实例。例如HDFS有两个NameNode实例
几种状态
操作状态:已启动、已停止、启动失败、停止失败
健康状态:良好、故障、亚健康
配置状态:已同步、未同步
下载客户端时:
支持完整下载和仅下载配置文件
支持通过浏览器下载,和直接保存到服务器
每个实例必须且只能属于一个实例组,实例首次安装时默认属于的实例组为“角色名-
DEFAULT”。
多余或者不再使用的实例组可以删除,删除前需要将组内的实例全部迁移至其他实例组,
然后参照删除实例组对实例组进行删除,系统默认的实例组不可删除。
约束:1、Serde必须使用“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”
2、必须使用insert语句分别向该类型表导入数据,列加密特性才能生效
3、文件格式仅支持TEXTFile和SequenceFile
Hive支持对表的某一列或者多列进行加密;在创建hive表时,可以指定要加密的列和加密
算法。
技术背景:
在往表文件中写入数据时,先对表的每个字段的数据进行加密,再将加密后的数据写入表文件
中;
从表文件中读出数据时,读取的文件是加密后的数据,需要先解密,才能正常使用;
而加密需要的密钥,是单独存储在HDFS上的。
步骤1语句说明:
指定数据序列化和反序列化到表文件中的处理类
column.encode.columns
该参数指定要加密的列,示例中指定了phone,address两个字段要加密
column.encode.classname
指定加密需要的处理类
习题答案:
多选题:1.ABC,支持HDFS联邦,可以创建新的HDFS联邦
多选题:2.ABD
习题答案:
1. 正确
2. 错误
3. 错误
4. 错误
5. 错误
6. 错误
7. 错误
8. 错误
FusionInsight Manager是FusionInsight HD的运维管理系统
安装部署、性能监控、告警、用户管理、权限管理、审计、服务管理、健康检查、日志采
集、升级和补丁等功能
本章介绍FusionInsight HD安装与部署相关流程,以及相关注意事项。
FI HD 6.5升级包不支持当前版本升级。
当前系统版本已经是要升级的目标版本。
安装前准备:1. 准备硬件 2. 准备操作系统 3. 准备工具和软件 4.准备数据
准备硬件:FusionInsight HD支持通用的X86服务器和ARM服务器
准备操作系统: LinuxOS(Redhat
6.4/6.5/6.6/6.7/6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5,CentOS
6.4/6.5/6.6/6.7/6.8/6.9/7.0/7.1/7.2/7.3/7.4/7.5,suse
11.1/11.2/11.3/11.4/12.1/12.2/12.3,EulerOS 2.1/2.2/2.3/2.5,NeoKylin
6.9/7.2/7.4,Oracle 7.4/7.5/7.6);
准备工具和软件:putty、winscp、浏览器(IE9及以上版本、谷歌21及以上版本)、
解压等工具;配置规划工具(LLD工具);版本说明书等
准备数据:规划集群部署方案;规划网络参数;规划角色部署位置
https://support.huawei.com/enterprise/zh/cloud-computing/fusioninsight-tool-
pid-21624171/software/23986772
解压软件包
解压FusionInsight HD软件包
上传软件包
用WinSCP工具登录将要安装Manager的服务器,将上述软件包传
输到管理节点指定目录
校验软件包
校验软件包是否正确
https://support.huawei.com/enterprise/zh/cloud-computing/fusioninsight-tool-
pid-21624171/software/23986772
解压软件包
解压FusionInsight HD软件包
上传软件包
用WinSCP工具登录将要安装Manager的服务器,将上述软件包传
输到管理节点指定目录
校验软件包
校验软件包是否正确
补丁软件为“FusionInsight HD V100R002C60SPC201.tar.gz”,建议保存至本地电脑。
登录FusionInsight Manager系统。
在浏览器地址栏中,输入FusionInsight Manager的网络地址。
地址格式为http://FusionInsightManager OMS系统的浮动IP地址:8080/web。
例如,在浏览器地址栏中,输入“http://192.168.40.2:8080/web”。
用户名:“admin”;默认密码:“Admin@123”
检查“软件版本”列表是否已包含“FusionInsight HD V100R002C60SPC201”。
如果集群没有导入License文件,健康检查OMS会有告警提示信息
如果集群未导入License文件,会有“无合法license存在”的告警信息
可以通过ESN号码在huawei platform license平台申请License文件。
License对系统资源或功能进行限定,用户必须申请支持系统限制功能的License文件,才
可以使用系统限制的资源或功能。
操作步骤:
步骤1:使用FusionInsight管理员帐号登录FusionInsight Manager管理界面。
步骤3:单击“导入 license”,选择License文件。
步骤4:单击“确定”,完成加载FusionInsight的License操作
故障处理思路及手段
日志下载
健康检查
集群恢复
思考题1. FusionInsight HD 系统版本进行升级,比如从V100R002C70SPC200 升
级到目标版本V100R002C80SPC200;FusionInsight HD 补丁版本进行升级,比如从
V100R002C70SPC100 升级到目标版本V100R002C70SPC200
思考题2. 1).把新的主机部署好和当前大数据平台LINUX一致的系统。2).通过华为大
数据平台添加主机功能把新增加的主机加进来。3).对新主机安装服务HDFS 及
HBASE服务。
4).对新增加的主机增加角色Regionserver及实例RS 。5).完成后对新增加的主机查看
服务HDFS ,HBASE及实例正常。
思考题3.操作类故障和运行类故障
只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时如果没有采取数
据备份和数据恢复手段与措施,就会导致数据的丢失,有时造成的损失是无法弥补与估量
的。
在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,其中最值得我们关
注的就是系统失效、数据丢失或遭到破坏。威胁数据的安全,造成系统失效的主要原因有
以下几个方面:
硬盘驱动器损坏;
人为错误;
黑客攻击;
病毒;
自然灾害;
电源浪涌;
磁干扰;
为了保证的数据安全性,使用数据备份技术。为了保证业务的连续性和系统可用性,
使用容灾技术。
备份系统组成:备份管理系统,备份客户端,备份网络,备份介质。
备份管理系统:主要包含备份软件和备份管理服务器,负责备份策略管理和备份作业监控,
以及读取备份客户端的数据并把数据写入到备份介质中。
备份客户端:需要备份数据的业务主机,它负责提供要备份的数据,一般需安装备份软件
客户端代理程序(Agent)。
备份介质:备份数据存储的媒介,介质是数据的负载物,它的质量直接关系着备份的速度
和备份数据的可靠性。一般为磁盘阵列、物理磁带库或者虚拟带库、光盘库,光盘塔。
备份网络:备份数据流由备份客户端到备份服务器的传输路径,常用的有LAN-base,LAN-
free等。
备份管理系统主要包含备份软件和备份管理服务器。
备份软件:是备份系统的核心,完成备份策略的制定、控制生产数据拷贝到存储
介质上,并对备份数据、备份介质进行管理,以及一些其它扩展功能,比如加速
备份、自动操作、流量控制、灾难恢复等扩展功能。如Symantec的NetBackup、
Common Vault的Simpana等。
在一个大的系统中,备份服务管理服务器通常由备份服务器和介质服务器组成。
备份服务器负责策略制定,备份任务的发起执行和备份任务监控等管理控制工作。
介质服务器负责从应用服务器中读取数据,并将备份数据写入到备份介质中。
备份软件主要由三个软件模块组成:
管理服务器:备份服务器维护着所有的配置信息(客户端,介质代理,备份设备
等),对备份系统的各个模块的系统管理,管理备份策略,并提供备份任务以及
数据恢复的配置界面和备份作业的监控。
介质服务器:负责备份介质设备,介质池的管理,和介质设备通信、读写管理,
是管理服务器和介质池以及客户端的中间件。
客户端代理:安装在业务服务器上,负责和管理服务器和介质服务器通信交换信
息,提供要备份的数据。
备份软件通常由以上三个组件组成,其中根据场景的不同,介质服务器模块通常
单独安装在一个物理服务器上,有的也和管理服务器模块装在一个物理服务器上,
有时也和客户端代理一起装在生产主机上。
备份软件的主要功能:备份策略管理,备份作业监控,备份介质管理。
备份策略指:备份系统工作的规则。
完全备份:完全备份是在某一个时间点上所有数据的一个完全拷贝,在备份发起后到
备份结束的这个阶段中一个文件发生了改变,改变的部分将在下次备份的时候进行备
份。又称为全量备份。
累积增量式备份:累积增量式备份是以上一次的完全备份为基准的。如果以前未进行
任何备份,则备份所有文件。
差异增量式备份:差异增量式备份于累积增量式备份的基准不同,差异增量式备份是
以上一次为基准,而不管上次是什么样的备份级别。如果以前未进行任何备份,则备
份所有文件。
要求在同一策略中结合完全备份使用,但不要在同一个策略中结合使用差异增量式备份和
累积增量式备份。
默认情况下,如果文件创建和完全或差异增量式备份间的时间间隔少于 5 分钟,则差异或
累积增量式备份可能会产生意外结果。备份将成功,但也会备份其他文件。
通常,应用环境对备份存储空间和备份窗口的要求较高,因此更多的使用完全备份和差异
增量式备份的结合。
备份可认为是低级别的容灾,备份是容灾的基础,但容灾不能替代备份。业务系统的
全面保护应该是容灾与备份的结合。
备份可认为是低级别的容灾,备份是容灾的基础,但容灾不能替代备份。业务系统的
全面保护应该是容灾与备份的结合。
FI HD 6.5升级包不支持当前版本升级。
当前系统版本已经是要升级的目标版本。
如果一个HDFS目录已创建快照,那么在快照完全删除以前,此目录无法删除或修改名称。
该目录的上级目录或子目录也无法再创建快照。
1.目标、实现、数据可用性、备份周期、网络带宽占用、空间占用、版本管理机制、能否
离线
2.累积增量式备份:累积增量式备份是以上一次的完全备份为基准的。如果以前未进行任
何备份,则备份所有文件。差异增量式备份:差异增量式备份于累积增量式备份的基准不
同,差异增量式备份是以上一次为基准,而不管上次是什么样的备份级别。如果以前未进
行任何备份,则备份所有文件。
3.管理系统Manager的数据(需要同时备份OMS和LdapServer)、HBase用户数据、
HDFS用户数据、Elasticsearch用户数据、Hive用户数据、DBService中保存的组件元数据、
HBase元数据、Kafka元数据和HDFS元数据、Elasticsearch元数据。
HASH机制:里面包含16384个HashBYkey,假如有100个DataNode,则这些
HashByKey会均匀分配给这些数据节点。一条数据来了以后,会根据分布列(或者叫索引)
计算Hash值,从而判断放在哪个Hash层里面,进而判断放在哪个数据节点上。
原来老的节点上的HashByKey会匀一部分,分配到新的节点上,再把这些HashByKey所对
应的数据挪到新增的节点上。这就是一致性Hash技术。
过程:老的节点Node Group1包含所有的数据节点,在整个物理集群完成以后,在重分布
之前,形成一个新的集群2,包含所有节点,并且会形成一个新的表,跟老集群节点中表结
构一致的表,然后迁移数据,等所有完成以后,老的Node Group会删掉
Global:保存共享表的,像pclass这种系统表,它所有database的共享表,并不是属于某
一个database,是一个全局的目录。
OID(对象标识符)用来在整个数据库集簇中唯一地标识一个数据库对象,这个数据库对象可
以是数据库、表、索引、视图、远足、类型等
● 行模式下文件结构、页面结构、记录结构;空间分配方式、与操作系统页面的对照关系
● 每个page都是一个block,文件块;page Header,保存一些属性的信息;tuple,元组
CTID,每张表隐含的一列,是一个两位的数组,第一位表示page的编号,第二位表示偏移
位置
● 每个TOAST表都有chunk_id字段(一个表示特定TOAST值的OID)、 chunk_seq(一个序列
号,存储该块在数值中的位置)、chunk_data(该块实际的数据)。
● 在chunk_id和chunk_seq上有一个唯一索引,提供对数值的快速检索。
● 因此,一个表示行外TOAST值的指针数据需要存储要查阅的TOAST的OID 和特定数值的
OID(它的chunk_id)。
● BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件
VACUUM:真空。是一个很常用也很重要的运维操作,会经常用到。我们再update和
delete时只是打一个标记,并没有把空间释放掉,如果经常进行update和delete操作的话
会产生很多的磁盘碎片,和我们手机道理一样。
单纯的vacuum操作:不会释放空间,但会给系统标记一下,这块内容是可以重用的,用户
在插入数据时,会往这块空间上插入数据;
Vacuum full操作:是更深层次,更彻底的清理,相当于在底层重建了一张表,把空间释放
掉后,原来的数据重新排列一遍
VACUUM使用注意:
● 要清空一个表,一个人必须通常是表的所有者或是一个超级用户。然而,数据库所有者允
许清空他们的数据库中的所有表,除了共享目录。(对共享目录的限制意味着一个真正的
数据库范围的VACUUM仅能由超级用户执行。) VACUUM将跳过调用用户没有权限清空
的任何表。
● VACUUM不能在事务块内执行。
● 对于有GIN索引的表,VACUUM(以任何形式)也完成任何挂起索引插入内容,通过移动
挂起索引条目到主GIN索引结构中的相应位置。
● 建议生产数据库经常清理(至少每晚一次),以保证不断地删除死行。尤其是在增删了大量记
录之后,对受影响的表执行VACUUM ANALYZE命令是一个很好的习惯。这样做将更新系
统目录为最近的更改,并且允许PostgreSQL 查询优化器在规划用户查询时有更好的选择。
● 不建议日常使用FULL选项,但是可以在特殊情况下使用。一个例子就是在你删除或更新了
一个表的大部分行之后,希望从物理上缩小该表以减少磁盘空间占用并且允许更快的表扫
描。VACUUM FULL 通常要比单纯的VACUUM收缩更多的表尺寸。
列存有两个优势:以列为单位,每一列的数据类型相似,压缩比会更高,磁盘占用空间也
就更小;查询某列时效率更高,比如上千列的表,不会每列都查,这样I/O量和占用内存都
小很多。行存则在点查询,全表扫描时优势很大,特别是在索引的帮助下。在2018年6月
份发布的版本中,列存也有betree索引,但效果并没有行索引那么好。
CUHeader,表头的数据并不压缩,如果存储大量的小文件,表头的信息会非常大,每插
入一列都会附带上表头的数据,查询时会消耗大量的I/O资源。
可以理解为,表空间提供了一个目录,创建了一张表,在该表空间内,则所有数据都在该
目录下,一方面方便管理,另一方面可以控制大小,资源隔离。在oracle内是非常常用的,
在OID下则比较不常用,因为本身集群有很多数据节点,每个节点都有目录,如果在某个
磁盘创建表空间,则相应每个数据节点上的数据都会在该目录下,会加重I/O的争抢,从
C80开始已经做了一些优化。
Location是一个目录,可以指定相对路径,就是做在相对路径的所有节点上都会生成一个
同名目录,用来存放相应的数据。
删除表空间时,必须保证表空间内的所有对象已经删除掉了,否则会报错。
创建表空间注意事项:
1、只有系统管理员可以创建表空间。
2、不允许在一个事务块内部执行CREATE TABLESPACE。
删除表空间注意事项:
1、只有表空间所有者有权限执行DROP TABLESPACE命令,系统管理员默认拥有此权限。
2、DROP TABLESPACE不能出现在事务块内部。
3、如果执行DROP TABLESPACE失败,事务回滚,需要再次执行一次DROP TABLESPACE
IF EXISTS。
4、在删除一个表空间之前,表空间里面不能有任何数据库对象。
修改表空间注意事项:
1、只有表空间的所有者有权限执行ALTER TABLESPACE命令,系统管理员默认拥有此权限。
2、要修改表空间的所有者A为B,则A必须是B的直接或者间接成员。
只有系统管理员可以创建表空间。
CN的每个节点的pg_tblspc下面是空的,在创建完一个表空间以后,在该目录下会创建一
个文件链接,这个文件链接,连接到实际的/test/testspaceDir下面。在实际的CN和DN之
间建立一个文件的软链接。
Database是所有对象的集合,是最大的。用户可以根据不同的业务和需求,创建不同的数
据库。
模式一般也是为了区分不同的业务来创建的,比如,我的运维下面有一些查看告警事件,
会创建一个模式;统计磁盘空间等也可以创建一个模式。但跟数据库的区别是,同一个
Database下面,不同模式的表是可以相互关联分析的,跨database的表在没有tblink功能
的时候,是不能关联的。
同一个Schema下面可以有多个tablespace的表,我们可以指定某个表在某个表空间下面,
但是不能指定模式在某个表空间下面。
这里主要讲的是事务日志,也是预写日志。也就是我在写日志之前就先把日志写好,类似
于Hbase中的Hlog。用来应对故障场景,运维过程中用来回滚数据,防止丢失。
pg_xlog下人员用不到,也没发布)的工具,对这些日志文件进行解析,得出这些日志文件
记录了数据库都做了哪些操作,这些日志文件记录的其实都是一个操作过程,例如往哪个
数据块上存放了哪些数据的数字编号的文件都是WAL日志文件。这些日志文件不是明文的,
不可读,需要通过一个叫pgcheckxlog(运维。
Pg_xlog文件跟我们的数据文件差不多大,但不会像数据文件一样明着保留数据,并且也
可以设置日志目录的大小。当足够多的新的产生以后,超过了预值,会将老的日志覆盖掉。
这些日志也会从主的DataNode上发到备的DataNode,以此保证高可用性和主备节点上
的数据是一样的。
● Checkpoint就是刷buffer的操作,有一个进程会持续执行这个,事物日志量达到一定的
程度,会执行checkpoint操作,用户也可以手动去执行,比如通常在现网做变更,要升级、
扩容时,在此之前,在停止业务之后会人为做一次chenkpoint。确保数据已经放到磁盘上
了。
● Checkpoint在ha情况下如何工作。
● 列存的日志管理。
Xlog大小跟数据文件是差不多的,如果列存也继续用Xlog的话,会占用大量资源,影响性
能。
这里如果保证主备一致的话,直接通过复制的方式,把数据页发给备机。
高可用性除了前面提到的事务日志,还体现在主备从三个层次的高可用架构,主、备和从
备三个角色。备节点正常情况下,从备节点是不工作的。当备节点宕机时,从备节点工作,
这样能保证每时每刻,数据都有两份。
从备不会追全量数据,从备机宕机以后时间的备份。
逻辑备份与恢复:对于故障点和备份点之间的数据,逻辑备份无能为力,逻辑备份适合备
份那些很少变化的数据,当这些数据因误操作被损坏时,可以通过逻辑备份进行快速恢复。
如果通过逻辑备份进行全库恢复,通常需要重建数据库,导入备份数据来完成,对于可用
性要求很高的数据库,这种恢复时间太长,通常不被采用。由于逻辑备份具有平台无关性,
所以更为常见的是,逻辑备份被作为一个数据迁移及移动的主要手段。
物理备份与恢复:物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的
场景。通过合理规划,可以低成本进行备份与恢复。
答案:
1. ABD
2. B
● 旧集群状态正常。
● 新加节点机器的软硬件配置和旧集群一致。
● 新节点和旧集群之间通信已经建立,网络正常。
● 新加节点数目大于等于3。
● 新加节点的locale、encoding等需要和旧节点上保持一致。
● 新的机器上已经做了路径和用户组规划。
● 在前一次扩容结束后才能再次扩容。例如,扩容过程中由于断电等原因导致扩容未完成时,
不允许再次进行扩容。需要先修复结束前一次扩容。
● 扩容前需要检查之前对CN的“pg_hba.conf”文件所作的修改,确保新扩节点的鉴权方式
和旧集群鉴权方式保持一致。
● 扩容前不能锁定集群。
● 扩容不支持所有节点只含CN,不含DN的场景,这个场景使用管理CN工具
增加新节点后,如果不做后面的数据重分布,新的数据还是只会存在老节点上。
这里的重分布过程,相当于我们新建了一张临时表,分布在所有节点上(包括老节点),从原
来的表中select出数据,然后insert到新表中,然后把新旧两张表的信息进行交换,把老表
drop掉就完了。
重分布的过程是全部数据重新在所有节点上进行分布,原来老的节点上也有数据,为何不
只把新节点上的数据分给新节点呢?
最开始是这么做的,但耗费时间更多,因为有一个挑选数据的过程。
GaussDB 200的系统在做数据重分布时,为了避免I/O资源争夺,一般先把业务停掉,重
分布完成后,再开启业务。
这时新老节点已经链接到一起了,我们重分布一般是在老节点上执行命令,为何不在新节点
上做?因为我们前面都会有增加节点的动作,在增加新节点后,一般都会有回滚,把新节
点清空,格式化,如果在新节点上执行重分布命令,会导致数据丢失等意外。
在这里选择任意一个老节点下发(执行命令),所有节点是同时进行重分布的。
一般都会申请一个变更时间窗。
重分布的时间很重要,因为这会耗费业务的时间,有一个窗口期。
答案:
1. ABCD
2. A
LVS:Linux Virtual Server,即Linux虚拟服务器,是我国章文嵩博士在1998年做的,后
入职阿里7年,又加入滴滴,任副总裁。
GUC参数max_active_statements控制CN允许的最大并发数。当超过这个数值时,就要排队。
每个CN上这个值默认的是10,允许10个SQL并行运行。
这个值不能太大,因为,之前项目中一个集群,报了csql不够用,有51台机器,每台机器有8
个DN,也就是有408个DN。一个DN上在跑一个任务是,和其他407个DN都要建立连接,
DN和DN连接的时候会用到端口号,每台机器的端口号是有上限的,上限值是6535。我们内
核分配的端口大概是32000多个。即每个SQL消耗的端口是408个,总共可并行执行的最大的
SQL数:32000/408=78。即每个CN允许的最大并发的SQL数是78个。
LVS负载均衡也采用HA策略,安装主和备两个节点上
非CN节点:负载均衡是安装在单独的物理机上,一定不能安装在CN节点上,原则上可以
安装在DN节点上,因为其用到的最大资源是网络,对CPU和存储没有大的要求。
这里类似我们的交通管理。
解决两个问题:防止堵车,尽量减少延时性。
资源隔离:不同的车道,左拐,右拐,直行。都有自己的车道
排队和优先级:警车、救护车。
SLA:Service-Level Agreement的缩写,意思是服务等级协议。是关于网络服务供应商和
客户间的一份合同,其中定义了服务类型、服务质量和客户付款等术语。
对象主要包含三部分:控制组、资源池、资源池上的用户。重点在资源池
CN端进来会有一个大的队列,也就是全局的队列。然后根据不同的用户组,建立其自己的
资源池,也就是大的队列中小的队列,
内存节点级别控制参数max_process_memory在集群搭建时是必须要设置的,是每个节点
最大的一个内存
这个是整个资源管理的框架,包括资源的隔离、资源的使用以及资源的排队情况等。
控制组是总的对整个资源的控制情况,我们可以设置不同的控制组,为其配置不同级别的
优先级
资源组下面是规划资源池,在这里可以为每个不同用户及其相关的业务配置资源(cpu、
I/O、内存)的百分比,这样可以达到资源隔离的效果,不至于占用其他资源池的资源。
在资源池里面会创建用户,用户是关联到资源池上的。一个资源池可以被多个用户共享。
全局队列:用一个参数( )控制每个CN上并发的最大数,例如每个CN上最大的并发数是
5,则整个集群假设有3个CN,总的并发数就是15。
资源池队列:用一个参数( )来控制。如果其所在的控制组设置的并发量很大,资源池设
置的较小,则可以在资源池内排队。
SLA:Service-Level Agreement的缩写,意思是服务等级协议。
作业级别内存控制:数据库参数query_mem
● 有一个开关,先启动资源负载管理,然后再重建控制组,本身有一个默认的控制组,系统
内部交互的一些sql,是在内部控制组内运行的,如果想要创建不同CPU权限的控制组,可
以用gs_cgroup -c来创建;
● 然后创建资源池,资源池也有一些对应的参数,后面会讲到;然后创建用户,用户关联到
不同的资源池上;然后用不同的用户登入,可以在相应的资源内执行作业。这就是整个资
源管理负载的一个流程。
● 控制组Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离
进程组(process groups)所使用的物理资源(如:CPU、IO、内存等)的机制。如果一
个进程加入了某一个控制组,该控制组对Linux的系统资源都有严格的限制,进程在使用这
些资源时,不能超过其最大限制。
● 资源池通过绑定控制组进行实现资源的分配,作业的优先级和其关联的资源池的资源数量
有关。一般情况下,我们认为作业关联到的资源池拥有的资源数量越多,则其优先级越高,
因为该作业能够拥有更多的资源去执行。
● 在示例中:
作业A的优先级高于作业C和D,因为作业A关联的资源池拥有的资源最多。
作业A和作业B在同一资源池中,两者优先级相同,发生资源竞争时,平分资源池1的系统资源。
如果要调整作业的优先级,只要切换其绑定的资源池就可以了。
行存 shared_buffers :行存表较多一般会设置的大一些,主要存储作业执行过程中行存表的
元信息和线程之间交互时共享内存的一些信息。
列存cstore_buffers :主要存储列存表的一些元信息(cudsa),如果列存表较多,则设置该
参数大一些。
DN实例用到的最大内存:首先减去系统其它的一些应用内存,以及网络收发需要的内存,剩
余大概占到80%左右;再减去备和从备占用的一些内存,再乘以70%;最后除以节点数+1。
这就是主实例内存占用的大小
需要检查系统参数vm.min_free_kbytes,如果该数值占用系统内存大于RAM的5%,则需调
整百分比为70%。
● 查看当前CN的内存使用情况。
● 查询整个集群的内存使用情况。 查询pgxc_total_memory_detail视图,必须具有
sysadmin权限。
● Omm用户是有路径的。 这里的40%需要解释一下,这个值只有在资源发生争抢的时候才
会起作用,平时集群空闲时,是可以用到100%的。这是动态的。
● 在新版本中,增加了一种形式,这块资源分配直接绑定核,做到更加定量,也就是静态的。
● 关联资源池的用户需要是:具有login权限,非DBA用户。
● 创建资源池,从属于哪个控制组,占最大内存的百分比(20%)。创建业务资源池:可以
设置业务最大并发数是5,ACTIVE_STATEMENTS=5。创建用户:关联资源池,数据空间
(这里最多2G)。
gs_wlm_session_statistics:是张实时表,会实时记录SQL在执行过程中所占用资源的情
况,SQL优化器在执行SQL解析后执行过程中每一步所占用的 资源。以便我们优化SQL语
句
gs_wlm_session_info:是张历史表,SQL优化器在执行SQL时会生成一个cost,也就是耗
费资源的代价,我们会把SQL执行超过多长时间或占用超过多大的资源的语句记录到历史
表里面,后续去分析这些SQL语句,以便进一步优化。
目前这块也正在开发告警的模块,资源占用过多或耗时太久,会自动报警。
这个资源池占当前实例的100%内存;Medium:控制组中等级别;active_statements:资
源池并发队列的控制,-1代表没有控制。
cpu_affinity:CPU契合度,-1代表无契合度
查看当前有哪些SQL是在running、哪些是在pending排队等待、哪些是finish完成的
答案:
1. 负载均衡使用开源组件LVS,在各个CN节点配置虚拟IP,LVS服务器接受连接请求,
通过改写请求报文的MAC地址和预设的调度算法,将连接请求派发给各个CN节点,
而CN节点直接将执行结果返回给业务端。
通过keepalived服务管理LVS,并且可以配置keepalived主备服务器,保证负载均
衡功能的稳定性。
2. 资源负载管理的对象:
内存节点级别控制:通过数据库参数max_process_memory控制CN、DN可以使用的
内存上限。
内存作业级别控制:通过数据库参数query_mem控制作业级别的内存使用或者通过
资源池进行控制
3. 由于GaussDB 200与大数据平台其他组件(如HDFS)同时部署,默认GaussDB
200使用的内存占系统可用内存的80%。
null 数据源文件中把什么字符识别为null;
with 数据导入过程中出现的数据格式错误信息将被写入
error_table_name指定的错误信息表中。
copy from/to是从CN端进行数据的导入导出,与GDS方式相比性能较低。
答案
1. GDS
2. copy to/from
3. copy to
4. Roach
学习推荐
华为培训与认证官方网站
http://learning.huawei.com/cn/
华为在线学习
https://ilearningx.huawei.com/portal/#/portal/ebg/26
华为职业认证
http://support.huawei.com/learning/NavigationAction!createNavi?navId=_31&l
ang=zh
查找培训入口
http://support.huawei.com/learning/NavigationAction!createNavi?navId=_traini
ngsearch&lang=zh
更多信息
华为培训APP