前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Cloudera Manager在线为集群减容

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

作者头像
Fayson
修改2018-04-01 20:47:20
4K0
修改2018-04-01 20:47:20
举报
文章被收录于专栏:Hadoop实操

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

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异常日志:

代码语言:txt
复制
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不会在一下线节点就自动进入安全模式。

解决方法:

代码语言:txt
复制
sudo -u hdfs hadoop dfsadmin -safemode leave
sudo -u hdfs hadoop fsck / -delete

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

HDFS告警恢复

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档