CDH数仓项目(四) —— 集群性能测试/资源管理/清理CDH集群

news2024/10/7 5:26:04

0 说明

本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》《CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建》和《CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理》章节,本篇介绍些常见的性能测试和资源管理功能,及最后提供详细的卸载和清理CDH集群步骤

1 集群性能测试

1.1 DFSIO测试

在Hadoop中包含很多的基准测试,用来验证集群的HDFS是不是设置合理,性能是不是达到预期,DFSIO是Hadoop的一个基准测试工具,被用来分析集群HDFS的I/O性能。
DFSIO后台执行MapReduce框架,其中Map任务以并行方式读写文件,Reduce任务用来收集和汇总性能数字。可以通过这个基准测试对比吞吐量、IO速率的结果以及整个磁盘的原始速度,来确定你的集群是否得到了期待的性能。另外,可以通过这些测试中指标的严重偏差发现集群中一个或多个问题节点,结合监控系统一起使用能够更好的定位Hadoop集群的瓶颈所在。

1.1.1 写性能测试

执行如下命令进行测试,由于开启了kerberos认证,这里由hive用户进行测试

 kinit -kt /var/lib/hive/hive.keytab hive/hive
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.1-tests.jar TestDFSIO -Dtest.build.data=/user/hive/benchmark -write -nrFiles 100 -fileSize 10

在这里插入图片描述

1.1.2 读性能测试

性能基准测试针对HDFS的读操作进行,读操作将用到第一步的写操作,因此写操作必须在读操作之前执行。

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.1-tests.jar TestDFSIO -D test.build.data=/user/hive/benchmark -read -nrFiles 100 -fileSize 10

在这里插入图片描述

1.1.3 删除测试数据

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.1-tests.jar TestDFSIO -D test.build.data=/user/hive/benchmark -clean

1.2 TeraSort测试

Hadoop的TeraSort是一个常用的测试,目的是利用MapReduce来尽可能快的对数据进行排序。TeraSort使用MapReduce框架通过分区操作将Map过程中的结果输出到Reduce任务,确保整体排序的顺序。TeraSort测试可以很好的对MapReduce框架的每个过程进行压力测试,为调优和配置Hadoop集群提供一个合理的参考。

1.2.1 生成测试数据

time hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar teragen 10000000 /user/hive/terasort-input

1.2.2 执行测试

对于TeraSort第一个参数是HDFS上输入文件的路径,第二个参数是HDFS上输出结果的路径。

time hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar terasort /user/hive/terasort-input  /user/hive/terasort-ouput

在这里插入图片描述

1.2.3 验证

time hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar teravalidate /user/hive/terasort-ouput /user/hive/terasort-validate
hadoop fs -cat /user/hive/terasort-validate/part-r-00000

在这里插入图片描述

2 集群资源管理

CM提供了众多的资源KPI指标,以及丰富的可视化的资源分配、运维和监控界面。运维人员能在单一管理界面配置、监控和导出实时的系统集群资源状态、管理规则以及分用户、任务的使用状况。
CDH 以及 CM 能同时满足动态以及静态的资源管理。
动态资源池可以提供基于 YARN 的动态资源隔离能力,静态资源池可以提供基于 Linux 容器技术的静态资源隔离能力。

2.1 动态资源池

yarn默认有三种调度器——FIFO、Capacity以及Fair Scheduler,CDH推荐使用Fair Scheduler。通过动态资源池的Web UI,我们可以十分方便的配置Fair Scheduler

2.1.1 动态资源池配置

1)点击群集→动态资源池配置进入动态资源池的配置界面
在这里插入图片描述
2)动态资源池配置——资源池
动态资源池采用树形结构,与Fair Scheduler的队列保持一致,任务只能提交到子池。用户可自定义动态资源池,以将不同任务提交到不同的资源池中。
每一个资源池都有一个权重 (weight)的概念,它定义了资源池资源分配的比例。但并不是说每个资源池都只能获得相应比例的资源。
下面创建以三个子池——root.default、root.dev、root.prod,权重均为1
在这里插入图片描述
3)动态资源池配置——计划模式
假如规定我们将所有开发测试的job全部提交到root.dev资源池,所有的生产任务全部提交到root.prod资源池。由于我们的离线任务大多放在夜间执行,而开发测试工作主要在白天执行,很显然,root.dev在白天的时候需要更多的资源,root.prod在夜间需要更多的资源。计划模式就能够自动帮助我们在不同的时间段,刷新不同的资源池配置。

① 创建计划规则
白天计划
在这里插入图片描述

夜间计划
在这里插入图片描述

② 修改资源池
修改root.dev将dev的日间权重适当调大,此处上调到3。按照相同的步骤,将root.prod的夜间权重适当调大,也上调至3。调整完成后如下图:

白天:开发占3,生产占1,默认1
在这里插入图片描述

晚上:开发占1,生产占3,默认1
在这里插入图片描述

其他实际:开发、生产、默认都占1
在这里插入图片描述
4)动态资源池配置——放置规则
动态资源池规划完毕后,需要思考的问题就是,如何确定一个job提交后会被放置到哪一个资源池中。以下是放置规则
在这里插入图片描述
放置规则可以设置多个,从上到下依次校验,只要有一个规则校验成功,该任务就会被放置到该资源池中,后续规则不再校验,此处设置规则如下
5)动态资源池配置——用户限制
用户限制可对具体用户设置同时运行任务数的上限。
在这里插入图片描述
注意:如需采用最严格的资源权限控制,可以在资源池权限配置中为每个用户组配置相应的资源池,然后此处删除所有放置规则,只添加“已在运行时指定”一条放置规则, 并且不勾选自动创建池,此时用户提交任务时必须指定使用的资源池,方法为指定参数

-Dmapreduce.job.queuename=<pool name>

6)刷新动态资源池
动态资源池刷新之后才可生效

2.2 实操

1)在集群所有节点创建两个用户组prod、dev

groupadd prod
groupadd dev

2)在集群所有节点创建两个用户prod1,dev1,并指定其用户组分别为prod、dev

useradd prod1 -g prod
useradd dev1 -g dev

3)在HDFS上为两个用户创建家目录,并需改权限

kinit hdfs/hdfs
hadoop fs -mkdir /user/prod1
hadoop fs -chown prod1:prod /user/prod1

hadoop fs -mkdir /user/dev1
hadoop fs -chown dev1:dev /user/dev1

在这里插入图片描述
4)为两个用户创建Kerberos主体

kadmin.local -q "addprinc prod1/prod"
kadmin.local -q "addprinc dev1/dev"

在这里插入图片描述

5)分别用两个用户提交MR,观察集群资源分配情况
① prod用户提交

kinit prod1/prod
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 100 10

② dev用户提交

kinit dev1/dev
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 100 10

③ 资源分配结果
提交任务时间是晚上22:14左右,因此此时应该是夜间生产时间,所以生产用户dev分配资源更多
在这里插入图片描述
在这里插入图片描述

2.3 静态资源池

静态资源隔离能力基于 Linux 容器技术。Linux 容器工具,即 LXC,可以提供轻量级的虚拟化,以便隔离进程和资源。使用 LXC 的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源,LXC 是在 Linux 平台上基于容器的虚拟化技术的未来标准,最初的 LXC 技术是由 IBM 研发的,目前已经进入 Linux 内核主线,这意味着 LXC 技术将是目前最有竞争力的轻量级虚拟容器技术。LXC 项目由一个 Linux 内核补丁和一些用户空间(userspace)工具组成。
CDH 支持基于 CGroups 或者 Linux 容器进行静态资源隔离,保证不同应用、不同任务之间的资源使用独立性。
CM 提供了静态服务的监控和运维界面,能方便的查看和管理静态服务池。这里由于集群资源较小,不再演示。

3 数据备份

3.1 NameNode元数据备份

3.1.1 选择活动的NameNode

在这里插入图片描述

3.1.2 进入安全模式

在这里插入图片描述

3.1.3 选择保存Namespace

在这里插入图片描述

3.1.4 进入活动namenode所在服务器备份

mkdir /root/namenode_back
tar -zcvf /root/namenode_back/nn_back.tar.gz /dfs/nn/

在这里插入图片描述

3.2 备份MySQL元数据

3.2.1 备份:

mysqldump -u root -p -A > /root/mysql_back.dump 

3.2.2 测试

① 删除gmall库
在这里插入图片描述
② 恢复

mysql -u root -p -A < /root/mysql_back.dump

③ 验证是否恢复成功
在这里插入图片描述

-A :全部数据库

4 清理CDH集群

4.1 停止所有服务

  1. 停止所有集群服务
    在这里插入图片描述
    2)停止CMservice
    在这里插入图片描述

4.2 停用并移除Parcels

对我们安装的parcels,依次执行停用、仅限停用状态、从主机删除
在这里插入图片描述
在这里插入图片描述

4.3 删除集群

点击要删除的Cluster右侧的下拉箭头,点击删除
在这里插入图片描述

4.4 卸载Cloudera Manager Server

1)停止Cloudera Manager Server

systemctl stop cloudera-scm-server

2)卸载Cloudera Manager Server

yum remove cloudera-manager-server

在这里插入图片描述

4.5 卸载Cloudera Manager Agent(所有Agent节点)

1)停止Cloudera Manager Agent

systemctl stop supervisord

2)卸载Cloudera Manager Server

yum -y remove 'cloudera-manager-*'

在这里插入图片描述

3)清理

yum clean all

4.6 移除CM数据(所有节点)

umount cm_processes

rm -Rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/cloudera* /var/log/cloudera* /var/run/cloudera*

rm /tmp/.scm_prepare_node.lock

在这里插入图片描述

4.7 删除用户数据(所有节点)

rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper

在这里插入图片描述

4.8 停止并移除数据库

#停止服务
systemctl stop mysqld
#卸载数据库
yum -y remove mysql

在这里插入图片描述

4.9 最后释放阿里云主机

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC之五种类型参数传递

目录 一&#xff1a;普通参数 二&#xff1a;POJO数据类型 三&#xff1a;嵌套POJO类型参数 四&#xff1a;数组类型参数 五&#xff1a;集合类型参数 知识点1&#xff1a;RequestParam 前面我们已经能够使用GET或POST来发送请求和数据&#xff0c;所携带的数据都是比较简…

深度学习中的attention机制

SE 文章 https://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdfhttps://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdf class SELayer(nn.Module):…

Java工具包类

java.util包有很多实用的类、接口和异常。 向量类&#xff0c;堆栈类&#xff0c;哈希表&#xff0c;枚举接口&#xff0c;日历类&#xff0c;随机函数类&#xff0c;映射接口和属性类。 Vector类 vector是异构的&#xff0c;可以存储不同的对象&#xff0c;同时可以动态增加…

【工具】国内苹果市场已上架 新一代社交产品 damus

国内苹果市场可下载 2月1日&#xff0c;Twitter 联合创始人 Jack Dorsey 发布推文表示&#xff0c;基于分布式社交媒体协议 Nostr 的社交产品 Damus 和 Amethyst 正式在苹果 App Store 和谷歌 Google Play Store 上线。 目前为止&#xff0c;Damus 在国内苹果应用市场是可以直…

远程超大功率森林防火喊话与应急广播系统方案

北京恒星科通发布于2023-2-2 一、引言 随着消灭宜林荒山和实现全面绿化&#xff0c;造林事业不断发展&#xff0c;林地面积、林业蓄积量逐年增加&#xff0c;如何加强森林防火、保护环境&#xff0c;是全国当前面临的一项重大任务。 森林火灾是一种突发性和破坏性极强的自然…

Spring Security(新版本)实现权限认证与授权

学习新版SpringSecurity详细配置一、Spring Security介绍1、Spring Security简介2、历史3、同款产品对比3.1、Spring Security3.2、 Shiro二、Spring Security实现权限1、SpringSecurity入门1.1 添加依赖1.2、启动项目测试2、用户认证2.1、用户认证核心组件2.2、用户认证2.2.1、…

CrossOver虚拟机软件2023最新版Mac运行切换Windows

CrossOver2023版是专为苹果电脑用户打造的一款实用工具&#xff0c;这款工具主要方便用户在mac上运行windows系列的应用程序&#xff0c;用户不需要安装虚拟机就可以实现各种应用程序的直接应用&#xff0c;并且可以实现无缝集成&#xff0c;实现跨平台的复制粘贴和文件互通等&…

我为什么抢不到票?!全国最难抢线路揭晓

随着疫情防控策略的转变&#xff0c;不少多年未归的朋友选择在今年返乡团聚。那么2023年春运抢票难度是否会因此而飙升&#xff1f;本期文章&#xff0c;我们通过数据分析&#xff0c;观察比较哪条线路的票最难抢&#xff0c;给还没有买到票的朋友提供参考。 根据往年央视报道和…

浅析晶体管放大电路的负载线

晶体管放大电路的负载线包括直流负载线和交流负载线&#xff0c;描述了输出端电压、电流与负载之间的关系。大学期间曾经学习过相关知识&#xff0c;本文将与大家重温所学内容&#xff0c;并介绍直流工作点对功率放大器性能的影响。 直流负载线 以场效应管为例&#xff0c;图…

基于python3实现Azure机器学习最接近人声的文本转语音功能

上期文章,我们介绍了如何使用Azure来创建一个语音服务API,哪里,我们得到了API的key,以及语音服务的基本信息,包含地区等,这些都是本期代码需要的参数 听了那么多AI合成的语音,Azure机器学习的文本转语音最接近人声https://blog.csdn.net/weixin_44782294/article/detai…

如何实现大文件上传:秒传、断点续传、分片上传

前言 文件上传是一个老生常谈的话题了&#xff0c;在文件相对比较小的情况下&#xff0c;可以直接把文件转化为字节流上传到服务器&#xff0c;但在文件比较大的情况下&#xff0c;用普通的方式进行上传&#xff0c;这可不是一个好的办法&#xff0c;毕竟很少有人会忍受&#…

在字节跳动干了5年的软件测试,2月无情被辞,想给划水的兄弟提个醒

前几天&#xff0c;一个认识了好几年在大厂工作做软件测试的朋友&#xff0c;年近30了&#xff0c;却被大厂以“人员优化”的名义无情被辞&#xff0c;据他说&#xff0c;有一个月散伙饭都吃了好几顿…… 在很多企业&#xff0c;都有KPI考核&#xff0c;然后在此基础上还会弄个…

Ubuntu设置静态IP

Ubuntu设置静态IP1.当前环境2. 设置前准备3.前提准备4.修改VMware中的网络配置5.修改Ubuntu配置文件6.查看网关信息7.Xshell远程连接1.当前环境 VMware16、Xshell7 2. 设置前准备 VMware16设置快照&#xff0c;配置出错可以返回到初始状态 3.前提准备 查看Ubuntu是否安装vi…

小程序项目学习--第七章:播放页布局-歌曲进度控制-歌词的展示

第七章&#xff1a;播放页布局-歌曲进度控制-歌词的展示 01_(了解)之前页面的回顾和播放页的介绍 功能介绍 02_(掌握)播放页-点击Item跳转到播放页和传入ID 功能概览 1.创建页面music-player 2.监听item的点击 方式一&#xff1a;直接写在子组件上 绑定监听点击 需要获取…

关于xxl-job中的慢sql引发的磁盘I/O飙升导致拖垮整个数据库服务

背景&#xff1a; 某天突然发现服务探测接口疯狂告警、同时数据库CPU消耗也告警&#xff0c;最后系统都无法访问&#xff1b; 查看服务端日志&#xff0c;发现大量的报错如下&#xff1a; CommunicationsException: Communications link failure &#xff1a;The last packet s…

dapr入门与本地托管模式尝试

1 简介 Dapr是一个可移植的、事件驱动的运行时&#xff0c;它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序&#xff0c;并可运行在云平台或边缘计算中&#xff0c;它同时也支持多种编程语言和开发框架。Dapr支持的语言很多&#xff0c;包括C/Go/Java/JavaSc…

antv/x6 2.x 搭建流程图编辑页面(1)

进来闲来无事&#xff0c;看到x6 2.x版本也更新了有几个月了&#xff0c;便想着熟悉下2.x版本 一、首先搭建项目基础框架。 // yarn 方式 yarn create vitejs/app v3-ts --template vue-ts cd v3-ts yarn yarn dev// npm npm init vitejs/app v3-ts --template vue-ts cd v3…

人工神经网络BP神经网络结构及优化原理单隐层,多隐层及反向传播梯度下降释义

神经网络&#xff1a;人工神经网络&#xff08;Artificial Neural Networks&#xff0c;简写为ANNs&#xff09;也简称为神经网络&#xff08;NNs&#xff09;或称作连接模型&#xff08;Connection Model&#xff09;&#xff0c;它是一种模仿动物神经网络行为特征&#xff0c…

ASEMI整流模块MDA110-16参数,MDA110-16规格

编辑-Z ASEMI整流模块MDA110-16参数&#xff1a; 型号&#xff1a;MDA110-16 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;1600V 最大RMS电桥输入电压&#xff08;VRMS&#xff09;&#xff1a;1700V 最大平均正向整流输出电流&#xff08;IF&#xff0…

多线程synchronized对象锁与静态锁之间的8锁问题理解

目录8锁问题锁1&#xff1a;多个线程使用同一对象分别调用不同带有带synchronized关键字且非静态的方法锁2&#xff1a;在锁1基础上&#xff0c;增加A线程执行的方法的执行时间&#xff0c;使得B有机会参与执行锁3&#xff1a;多个线程使用同一对象&#xff0c;一个线程执行带有…