本文最后更新于 4 年前,文中所描述的信息可能已发生改变。
分布式文件系统HDFS
一、 实验目的
掌握HDFS的基本命令,理解HDFS工作原理和元数据管理方式。
二、 实验内容
HDFS的基本命令练习
检测HDFS元数据与真正文件数据的管理方式
三、 实验方法和步骤
1 HDFS基本操作
在自己的HDFS系统中中建立姓名拼音全拼的文件夹,例如张三,建立zhangsan,路径不限制。
在个人文件夹下,建立一个文件名为个人学号的文件,文件内容不限制。
创建文件夹
shell
hadoop fs -mkdir /songyuanbo
向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
shellif $(hadoop fs -test -e /songyuanbo/2211650123.txt); then $(hadoop fs -appendToFile 2211650123.txt /songyuanbo/2211650123.txt); else $(hadoop fs -copyFromLocal -f 2211650123.txt /songyuanbo/2211650123.txt); fi
从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
下载
shellif $(hadoop fs -test -e file:///home/atguigu/2211650123.txt); then $(hadoop fs -copyToLocal /songyuanbo/2211650123.txt ./22116501232.txt); else $(hadoop fs -copyToLocal /songyuanbo/2211650123.txt ./2211650123.txt); fi
将HDFS中指定文件的内容输出到终端中;
查看文件内容
shellhadoop fs -cat /songyuanbo/2211650123.txt
显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
查看信息指令
shellhadoop fs -ls /songyuanbo/2211650123.txt
给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
查看信息指令
shellhadoop fs -ls /songyuanbo
提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
shellif $(hadoop fs -test -d /test/syb); then $(hadoop fs -touchz /test/syb/test.txt); else $(hadoop fs -mkdir -p /test/syb && hadoop fs -touchz /test/syb/test.txt); fi

提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
shellhadoop fs -mkdir -p /test/test # 创建目录 hadoop fs -rmdir /test/test # 目录非空则会提示not empty,不执行删除 hadoop fs -rm -r /test/test # 强制删除目录

删除HDFS中指定的文件;
shellhadoop fs -rm /test/syb/test.txt
删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
shellhadoop fs -rmdir /test/syb # 目录非空则会提示not empty,不执行删除 hadoop fs -rm -r /test/syb # 强制删除目录
在HDFS中,将文件从源路径移动到目的路径
shellhadoop fs -mv /songyuanbo/2211650123.txt /songyuanbo/2211650123.backup
2. 分析HDFS工作原理
分析HDFS的元数据,找出上述文件夹和文件的相关元数据
shell
hdfs oiv -p XML -i fsimage_0000000000000000284 -o /home/atguigu/fsimage.xml
#查看Fsimage 文件
hdfs oev -p XML -i
#查看Edits文件导出文件

fsimage.xml

edits.xml
