Cloudera Certified Associate Administrator案例之Manage篇
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.下载Namenode镜像文件
问题描述:
公司集群的Namenode今天发生了故障,你想通过分析Fsimage文件来排查问题。你需要下载最新的fsimage文件,命名为"timestamp_xxx",其中xxx为以秒为单位的Unix时间戳,代表你操作时的当前时间,并上传到HDFS的/yinzhengjie/debug/hdfs/log/目录下。
解决方案:
这里涉及到hdfs命令的dfsadmin,dfs指令,以及基本Linux命令的使用。这些知识我们尽量不要查官方文档或者简单看一下命令的help输出就能操作。
1>.下载镜像文件
[root@node101.yinzhengjie.org.cn ~]# ll total 0 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# hdfs dfsadmin -fetchImage ./ #你得确保HDFS集群时正常运行的,否则下载会失败哟~ 19/06/15 15:27:57 INFO namenode.TransferFsImage: Opening connection to http://node101.yinzhengjie.org.cn:50070/imagetransfer?getimage=1&txid=latest 19/06/15 15:27:57 INFO namenode.TransferFsImage: Image Transfer timeout configured to 60000 milliseconds 19/06/15 15:27:57 INFO namenode.TransferFsImage: Transfer took 0.02s at 3263.16 KB/s [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll total 64 -rw-r--r-- 1 root root 64384 Jun 15 15:27 fsimage_0000000000000004578 [root@node101.yinzhengjie.org.cn ~]#
2>.将镜像文件进行重命名操作
[root@node101.yinzhengjie.org.cn ~]# ll total 64 -rw-r--r-- 1 root root 64384 Jun 15 15:27 fsimage_0000000000000004578 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# mv fsimage_0000000000000004578 timestamp_`date +%s` [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# ll total 64 -rw-r--r-- 1 root root 64384 Jun 15 15:27 timestamp_1560583829 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]#
3>.如果不存在目录就得手动创建hdfs上的路径
[root@node101.yinzhengjie.org.cn ~]# su hdfs #由于HDFS默认开启了sample认证功能,因此我们要切换用户,否则会抛异常"Permission denied" [hdfs@node101.yinzhengjie.org.cn /root]$ [hdfs@node101.yinzhengjie.org.cn /root]$ hdfs dfs -mkdir -p /yinzhengjie/debug/hdfs/log [hdfs@node101.yinzhengjie.org.cn /root]$ [hdfs@node101.yinzhengjie.org.cn /root]$ hdfs dfs -chmod 777 /yinzhengjie/debug/hdfs/log/ [hdfs@node101.yinzhengjie.org.cn /root]$ [hdfs@node101.yinzhengjie.org.cn /root]$ exit [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]#
4>.将日志上传到hdfs上
[root@node101.yinzhengjie.org.cn ~]# ll total 64 -rw-r--r-- 1 root root 64384 Jun 15 15:27 timestamp_1560583829 [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# hdfs dfs -copyFromLocal timestamp_1560583829 /yinzhengjie/debug/hdfs/log/ [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# hdfs dfs -ls /yinzhengjie/debug/hdfs/log/ Found 1 items -rw-r--r-- 3 root supergroup 64384 2019-06-15 15:35 /yinzhengjie/debug/hdfs/log/timestamp_1560583829 [root@node101.yinzhengjie.org.cn ~]#
二.手动均衡DataNode数据
问题描述:
公司的集群新扩充了一批工作节点,但是新的工作节点上没有数据,造成整个集群数据分布不均衡。
你知道HDFS的balancer功能可以解决这个问题。请将balancer操作占用的带宽限制为1G以内,并以阈值5启动balancer操作。
解决方案:
如果面试官问你这个问题那基本上就是送分题,我们只需要执行balancer即可。
1>.点击"HDFS"
2>.点击配置,搜索关键字"dfs.datanode.balance.bandwidth"
3>.将每个 DataNode 可用于平衡的最大带宽为1GB
4>.搜索关键字"重新平衡阈值"(或搜索英文"Threshold")
5>.修改重新平衡阈值为5
三.调小HDFS的副本数(将副本数为3的改为副本数为2)
问题描述:
你发现公司集群的HDFS集群总容量使用已经超过了80%,使用了默认的三个副本,现在想要将某个目录较大的文件副本数从3个副本改为2个副本,从而节省一定的容量。
解决方案:
如果遇到面试官问你这样的问题,那么恭喜你又是一道送分题。
1>.上传文件到HDFS集群中
[hdfs@node101.yinzhengjie.org.cn ~]$ [hdfs@node101.yinzhengjie.org.cn ~]$ ll /yinzhengjie/softwares/jdk1.8.0_201/ total 25980 drwxr-xr-x 2 10 143 4096 Dec 16 03:45 bin -r--r--r-- 1 10 143 3244 Dec 16 03:45 COPYRIGHT drwxr-xr-x 3 10 143 132 Dec 16 03:45 include -rw-r--r-- 1 10 143 5207434 Dec 12 2018 javafx-src.zip drwxr-xr-x 5 10 143 185 Dec 16 03:45 jre drwxr-xr-x 5 10 143 245 Dec 16 03:45 lib -r--r--r-- 1 10 143 40 Dec 16 03:45 LICENSE drwxr-xr-x 4 10 143 47 Dec 16 03:45 man -r--r--r-- 1 10 143 159 Dec 16 03:45 README.html -rw-r--r-- 1 10 143 424 Dec 16 03:45 release -rw-r--r-- 1 10 143 21103945 Dec 16 03:45 src.zip -rw-r--r-- 1 10 143 108109 Dec 12 2018 THIRDPARTYLICENSEREADME-JAVAFX.txt -r--r--r-- 1 10 143 155002 Dec 16 03:45 THIRDPARTYLICENSEREADME.txt [hdfs@node101.yinzhengjie.org.cn ~]$ [hdfs@node101.yinzhengjie.org.cn ~]$ hdfs dfs -mkdir /yinzhengjie/data [hdfs@node101.yinzhengjie.org.cn ~]$ [hdfs@node101.yinzhengjie.org.cn ~]$ hdfs dfs -put /yinzhengjie/softwares/jdk1.8.0_201/* /yinzhengjie/data/ [hdfs@node101.yinzhengjie.org.cn ~]$