专栏首页长远的EMREMR入门学习之HDFS的运维操作(十三)
原创

EMR入门学习之HDFS的运维操作(十三)

一、查看HDFS文件系统健康状况

前言

HDFS是分布式文件系统。HDFS支持fsck命令来检查系统中的各种不一致状况。我们可以使用fsck 来查看当前文件系统的状态。该命令提供了若干选项,不同选项完成不同的功能。

登录EMR集群的Master节点,我们通过ps aux | grep namenode 可以看到HDFS的超级用户是Hadoop。

所以我们在Master节点su hadoop,执行hdfs fsck 输出如下:

Usage: hdfs fsck  [-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]] [-includeSnapshots] [-storagepolicies] [-blockId ]
  start checking from this path
 -move move corrupted files to /lost+found
 -delete delete corrupted files
 -files print out files being checked
 -openforwrite print out files opened for write
 -includeSnapshots include snapshot data if the given path indicates a snapshottable directory or there are snapshottable directories under it
 -list-corruptfileblocks print out list of missing blocks and files they belong to
 -blocks print out block report
 -locations print out locations for every block
 -racks print out network topology for data-node locations
 -storagepolicies print out storage policy summary for the blocks
 -blockId print out which file this blockId belongs to, locations (nodes, racks) of this block, and other diagnostics info (under replicated, corrupted or not, etc)

参数

说明

<path>

检查的起始目录

-move

将损坏的文件移到到/lost+found

-delete

删除损坏的文件

-files

打印出所有被检查的文件

-openforwrite

打印出正在写的文件

-list-corruptfileblocks

print out list of missing blocks and files they belong to

-blocks

打印出block报告

-locations

打印出每个block的位置

-racks

打印出datanode的网络拓扑结构

默认情况下,fsck会忽略正在写的文件,使用-openforwrite可以汇报这种文件

注意事项:当输入的 在namenode中文件数量大的时候,要慎重使用fsck命令,会对hdfs系统造成较大性能影响。 通常,推荐在文件系统负载低峰期时候执行该命令,作健康检查。

操作

示例1:对整个文件系统进行监控检查

hdfs fsck /

示例2:将某个目录中损坏的文件删除

示例3:打印被检查的文件信息

二、HA集群查看NameNode状态

前言

在运维HDFS集群,或排查问题的过程中,我们需要确定某个NameNode节点的服务状态。HDFS提供了haadmin工具来查看该信息。

操作命令

同样在Master节点hadoop用户下,使用hdfs haadmin -getAllServiceState 如下:

或者使用hdfs haadmin -getServiceState nn1 如下

则NameNode nn1 是active 状态,则输出active;否则,输出standby。

HA集群切换NameNode

操作命令

示例:hdfs haadmin -failover nn1 nn2

输出: Failover to NameNode at *.*.*.* successful

三、hdfs dfsadmin

hdfs 使用情况,节点信息查询

前言

HDFS是分布式文件系统。HDFS支持使用dfsadmin来查看各个节点的情况,以及集群存储使用情况。

操作命令

hdfs dfsadmin -report [-live] [-dead] [-decommissioning] 

说明

打印 hdfs文件系统的信息和各节点的统计信息. 如果加上可选参数,则只打印对应状态的节点信息。 比如,hdfs dfsadmin -report -live, 只打印存活的节点信息。

hdfs 添加/删除/更新节点

前言

需要添加/删除一些节点, (不建议手动操作,如果需要扩缩容,请通过emr中控台提供的操作接口来操作)

操作命令

hdfs dfsadmin -refreshNodes

说明

刷新节点。 重新读取 hosts 和exclude 文件,更新哪些datanode可以连接到NameNode,以及哪些datanode应该是decommissioned或recommissioned。

具体操作

  1. 需要退役的机器列表加入dfs.hosts.exclude文件
  2. hadoop dfsadmin -refreshNodes
  3. 等待一段时间,这些datanode的状态由in service->Decommission
  4. dfs.hosts文件剔除这批datanode
  5. hadoop dfsadmin -refreshNodes

四、HDFS集群数据均衡操作

前言

随着时间推移,运行中的HDFS集群数据节点datanode负载的数据量越来越不均衡。这将破坏数据本地性特征,导致部分数据节点异常繁忙,影响整个集群性能。

命令介绍

hdfs balancer          
[-threshold <threshold>]          
[-policy <policy>]          
[-exclude [-f <hosts-file> | <comma-separated list of hosts>]]          
[-include [-f <hosts-file> | <comma-separated list of hosts>]]          
[-idleiterations <idleiterations>]

参数

说明

-policy  <policy>

策略取值: datanode, blockpool 。表示balancing将基于datanode级别;“blockpool”只能在Federation架构下有效,balancer级别为“blockpool”表示每个datanode上每个blockpool的blocks个数分布均衡。建议保持默认。

-threshold  <threshold>

磁盘容量百分比,当参与数据均衡的节点之间容量占比差值小于该值时,均衡操作停止。

-exclude -f \ <hosts-file> | \ <comma-separated list of hosts>

排除某些节点参与数据均衡操作。

-include -f \ <hosts-file> | \ <comma-separated list of hosts>

指定某些节点参与数据均衡操作。

-idleiterations \ <iterations>

最大迭代次数,默认值5

注意:因为涉及到数据迁移,迁移速度通过hdfs-site.xml 文件中的dfs.datanode.balance.bandwidthPerSec指定,单位字节/sec。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • EMR入门学习之EMR集群的常用操作(三)

    前言:上一篇我们了解了EMR集群的搭建,也了解到了集群节点的基本规格和硬件配置,那么本篇我们将学习一些集群的一些常用操作,比如集群的扩容、缩容以及COS对象存储...

    EMR入门学习
  • EMR入门学习之集群的监控与告警(四)

    登录【控制台】,选择【弹性MapReduce】进入左侧的【集群监控】,可以看到监控分为服务监控与主机监控

    EMR入门学习
  • EMR入门学习之EMR初步介绍(一)

    Elastic MapReduce(EMR)是腾讯云提供的云上 Hadoop 托管服务,提供了便捷的 Hadoop 集群部署、软件安装、配置修改、监控告警、弹性...

    EMR入门学习
  • 剑指OFFER之复杂链表的复制(九度OJ1524)

    题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。 输入: 输入可能包含多个测试样例,输入以...

    用户1154259
  • 浅析图卷积神经网络

    今天想和大家分享的是图卷积神经网络。随着人工智能发展,很多人都听说过机器学习、深度学习、卷积神经网络这些概念。但图卷积神经网络,却不多人提起。那什么是图卷积神经...

    崔庆才
  • 哎哟,这里发现一个比头脑风暴还靠谱的创意产生方法!

    究表明头脑风暴生成的好创意比人们自己独立思考还要少。 不过好消息是,有更有效的团队工作方式存在。 如果你是个上班族,恐怕十之八九都曾被上司或同事们拉进头脑风暴会...

    前朝楚水
  • 微软学Android Market推出 Web Windows Phone Marketplace

    Google在去年推出Android Market web版后,用户对这一特性很赞。用户只需要再web上选择想要的软件,一按INSTALL按钮后手机便会自动安装...

    张善友
  • 如何阅读一本书

    这可能是我近几年读过的最啰嗦的一本好书了,说好是因为内容不错,但450字的篇幅差不多可以精简到100页,作者知道如何读书,肯定不懂如何更好的写书。

    麦时
  • 陈希章(O365开发指南):Office 365 产品和开发相关资源

    我在为《Office 365开发入门指南》准备第二版,以及配套的视频教程,这个材料是其中的一部分,分享出来给大家参考,也欢迎大家补充。

    寒树Office与RPA
  • Leetcode-8.字符串转换整数 (atoi)

    首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:

    悠扬前奏

扫码关注云+社区

领取腾讯云代金券