第二讲 HDFS部署、原理与基本框架(实践部分)
理论部分的链接:https://blog.csdn.net/xlkdxes/article/details/107678319
实践部分(Shell命令)
我搭建的集群包含3个结点ubuntu1,ubuntu2与ubuntu3,其中ubuntu1既充当NameNode又充当DataNode,而ubuntu2与ubuntu3充当DataNode,运行结果如下图所示:
网页浏览器端界面:
这样就将整个集群启动起来了。
一、文件命令(fs)
最为常用的几个命令:
- 列出该目录下的所有文件。
bin/hadoop fs -ls <path>
- 创建新的文件到指定path。
bin/hadoop fs -mkdir <path>
- 列出该目录下的所有文件及其子目录(若无子目录则同1命令)。
bin/hadoop fs -ls -R <path>
- 从本地文件系统中复制单个或者多个源路径到目标文件系统,或者直接从标准输入设备写入到目标文件系统。
bin/hadoop -put localfile <path>
bin/hadoop -put localfile1,localfile2 <path>
bin/hadoop -put <path>
第一个是单个源路径,第二个是多个源路径,第三个是自己写入,之后按ctrl+C结束写入。
- 从HDFS中复制文件到本地文件系统。
bin/hadoop fs -get <src> <destin>
将src文件拷贝到destin目录下。
- 查看文件内容。
bin/hadoop fs -cat <path>
- 删除指定文件(文件中不能包含文件)。
bin/hadoop fs -rm <path>
- 递归删除指定文件(文件中可以包含文件)。
bin/hadoop fs -rmr <path>
- 合成文件。
bin/hadoop fs -getmerge <path1> <path2>
- 搬移文件。
bin/hadoop fs -mv <src> <destin>
- 查看指定文件统计信息(建立时间)。
bin/hadoop fs -stat <path>
- 将指定文件最后1K字节内容输出到标准设备上。
bin/hadoop fs -tail <path>
- 显示该目录下所有文件大小。
bin/hadoop fs -du <path>
- 纯拷贝文件。
bin/hadoop fs -cp <path1> <path2>
二、管理命令(dfsadmin)
常用的几个命令:
- 给指定文件分配限额空间大小。
bin/hadoop dfsadmin setSpaceQuota XXX <path>
- 清除分配限额空间大小。
bin/hadoop dfsadmin clrSpaceQuota <path>
三、文件管理工具命令(fsck)
常用命令:
查看指定文件所对应的数据块信息。
bin/hadoop fsck <path> -files -blocks -locations
四、数据均衡器(balancer)
数据均衡器是用来平衡各机器之间磁盘利用率的,在HDFS集群中,增加一个节点等操作将会很容易导致磁盘利用率出现不均衡的状况从而导致一系列的问题,可以通过调节均衡的参数进行。
bin/start-balancer.sh XX
后面所跟的百分比是磁盘利用率,即HDFS达到平衡状态的磁盘使用率偏差值,值越低(通常认为<10%)各节点越平衡,但作为代价,消耗时间也就越长。
问答题
第二题
请在你搭建的 HDFS 集群上按照以下流程操作,并写出对应的 shell 命令和执行结果:
(1) 描述你的Hadoop集群环境,比如几个节点,这些节点的角色(是Client、Namenode还是 DataNode)分别是什么?
(2) 在 HDFS 上创建目录 /home/[yourname] ,其中[yourname]为你的中文名全拼;
(3) 将视频文件 ChinaHadoop 第二讲(1).mp4上传到目录/home/[yourname]下;
(4) 打印目录/home/[yourname]占用磁盘空间总大小。
(5) 输出视频文件 ChinaHadoop 第二讲(1).mp4 的各个数据块名称,大小以及位置等信息(使用 fsck 命令)。
(6) 将目录/home/[yourname]的 Quota(配额)大小设置为 60MB,并将视频文件ChinaHadoop 第二讲(2).mp4 上传到该目录下,查看输出结果。
答:
(1)
有三个节点,分别叫做ubuntu1、ubuntu2、ubuntu3,ubuntu1扮演Master(NameNode与DataNode),ubuntu2与ubuntu3扮演Slaves(DataNode)
(2)
列出之前已经存在的文件。
使用fs命令,创建文件WangYuXiang,之后再查看该文件已经成功创建。
(3)
将ChinaHadoop1.mp4文件上传到WangYuXiang文件中。
(4)
查看该文件所占用磁盘的字节数。
(5)
我将两个.mp4均放在WangYuXiang文件中,共有2个数据块,具体信息如图所示:
(6)
给文件WangYuXiang分配限额空间60MB,然后上传ChinaHadoop2.mp4(文件大于60MB),会有如下提示:
于是清除限额空间大小再上传,就可以了:
两个.mp4均已存储在WangYuXiang文件中。