如何使用Cloudera Manager在线为集群减容

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


在Hadoop集群资源紧张的情况下可以在线扩容来提升集群的计算能力,具体参考Fayson前面的文章《如何在非Kerberos环境下对CDH进行扩容》,那么在集群计算能力浪费的情况下,如何避免集群资源浪费?本篇文章主要介绍如何使用Cloudera Manager在线减容Hadoop集群。

  • 内容概述

1.节点强制下线

2.节点正常下线

3.总结

  • 测试环境

1.CM和CDH版本为5.13

  • 前置条件

1.拥有Cloudera Manager的管理员账号

2.CDH集群已安装成功并正常运行

2.节点强制下线


1.计算节点下线前DataNode节点磁盘使用情况和Yarn资源使用情况统计

Yarn资源统计

2.通过Cloudera Manager的进入所有主机列表

3.选中要下线的节点,点击从“从集群中删除”

4.点击“集群中删除”,注意两个勾选要去掉。

5.点击“确认”

删除成功

注意:这里可以看到Hadoop相关角色已从该节点删除,但是依然存在Hosts列表中,受Cloudera Manager管理。

6.将该节点从Cloudera Manager移除

7.点击“确认”,可以看到该节点已从集群中移除

8.查看集群资源情况

集群中DataNode节点磁盘使用情况统计

Yarn资源统计

3.节点正常下线


1.计算节点下线前集群的DataNode节点磁盘使用情况统计

集群Yarn资源情况统计

2.通过Cloudera Manager的进入所有主机列表

3.选中要下线的节点,点击从“从集群中删除”

4.从集群中删除172.31.7.172节点

等待将该节点从集群中删除,解除授权的过程中,该下线节点上的数据也会被自动复制到其他的DataNode节点,如果下线节点的数据量较大,此步骤会耗费非常长的时间。

5.下线成功

6.将该节点从Cloudera Manager中移除

7.点击“确认”,将该节点移除Cloudera Manager

可以看到172.31.7.172节点已被移除。

8.查看集群资源情况

集群Yarn资源情况统计

4.总结


这里Fayson使用了两种方式来下线节点即正常下线和强制下线。

1.强制下线时未勾选“解除授权角色”和“跳过管理角色”功能,则会直接将该节点上面的所有角色停止并删除节点上的角色,不会处理该节点上的数据,会导致集群Block缺失。

2.正常下线时勾选了“解除授权角色”和“跳过管理角色”功能,则在进行节点下线的时候会将该节点的数据复制到集群的其它节点上,在数据全部复制成功后才会将该节点从集群中删除。

3.对比强制下线和正常下线前后磁盘使用情况可以看出,强制下线并未将下线节点的数据复制到集群其它节点。

4.对比强制下线和正常下线前后Yarn资源情况,在该节点从集群中删除后,Yarn的资源有减少。

在强制下线后集群出现异常告警

NameNode异常日志:

The number of live datanodes 3 has reached the minimum number 1. Safe mode will be turned off automatically once the thresholds have been reached.
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1523)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.renewLease(FSNamesystem.java:5145)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.renewLease(NameNodeRpcServer.java:884)
        at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.renewLease(AuthorizationProviderProxyClientProtocol.java:361)
        at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.renewLease(ClientNamenodeProtocolServerSideTranslatorPB.java:670)
        at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1073)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2226)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2222)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1917)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2220)
Caused by: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot renew lease for DFSClient_NONMAPREDUCE_1296242040_1. Name node is in safe mode.

异常原因:由于强制下线数据节点,HDFS的Block缺失,导致NameNode进入安全模式。Fayson在下线节点后,按照Cloudera Manager重启了集群,所以NameNode在接收DataNode汇报block的时候会进入安全模式,否则HDFS不会在一下线节点就自动进入安全模式。

解决方法:

sudo -u hdfs hadoop dfsadmin -safemode leave
sudo -u hdfs hadoop fsck / -delete

执行成功后等待集群将缺失的block从其他节点恢复至设置的副本数据

HDFS告警恢复

为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2017-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何通过CM禁用Federation

本文主要讲述如何通过CM禁用Federation。我前面写过两篇关于Federation的文章,可参看《HDFS Federation(联邦)简介》和《如何通过...

14740
来自专栏Hadoop实操

如何使用Oozie API接口向非Kerberos环境的CDH集群提交Shell工作流

前面Fayson介绍了《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》和《如何使用Oozie API接口向非Kerber...

35170
来自专栏Hadoop实操

如何使用Oozie API接口向非Kerberos环境的CDH集群提交Java作业

前面Fayson介绍了《如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业》,本篇文章主要介绍如何使用Oozie Client...

37570
来自专栏Hadoop实操

Sqoop抽数到Hive表异常分析(之二)

使用Sqoop抽取MySQL数据到Hive表时,抽取语句正常执行在数据Load到Hive表时报“Operation category READ is not s...

16530
来自专栏Hadoop实操

如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业

在CDH集群外的节点向集群提交Spark作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH...

35870
来自专栏大数据学习笔记

Hadoop基础教程-第12章 Hive:进阶(12.4 Hive Metastore)(草稿)

第12章 Hive:进阶 12.4 Hive Metastore 12.4.1 三种配置方式 Hive Metastore有三种配置方式,分别是: Embedd...

52970
来自专栏Hadoop实操

如何使用CDSW在CDH中分布式运行所有R代码

无需额外花费过多的学习成本,sparklyr(https://spark.rstudio.com)可以让R用户很方便的利用Apache Spark的分布式计算能...

54960
来自专栏我是攻城师

CDH-Hadoop2.6+ Apache Pig0.15安装记录

37350
来自专栏Hadoop实操

如何在Kerberos的CDH使用Sentry实现Spark SQL的权限控制

68620
来自专栏Hadoop实操

如何在Kerberos环境下的CDH集群部署Spark2.1的Thrift及spark-sql客户端

50740

扫码关注云+社区

领取腾讯云代金券