- 1.HDFS的概述
- 1.1NameNode负责管理工作
- 1.2DataNode负责数据存储工作
- 2.Shell对HDFS进行操作
- 2.1-ls 表示对HDFS目录的查看
- 2.2-mkdir 创建目录
- 2.3-put 从Linux上传文件到HDFS
- 2.4-text 查看文件内容
- 2.5-get 从HDFS下载文件到Linux
- 2.6-rm 删除目录
- 2.7-appendToFile向文件追加数据
- 2.8-cp 复制
- 2.9-mv 移动,重命名
- 2.10-cat 查看文件内容
- 2.11-setrep 修改副本数
- 2.12-help [command]查看命令的帮助信息
1.HDFS的概述
HDFS是Hadoop的分布式文件系统,提供海量数据的存储。
HDFS包括NameNode和DataNode。
1.1NameNode负责管理工作
本身含有很多元数据信息,存储在fsimage文件中;还含有file与block的对应关系。
在运行的时候,这些信息全部放在内存中。
只有在运行的时候,才有的映射关系——block与datanode的映射关系,不存硬盘。
1.2DataNode负责数据存储工作
block是hdfs进行数据存储的基本单位,默认64MB。
并不意味着文件一定是64MB,如果文件小于64MB,那么该block占用实际大小的硬盘空间。
假设有1个100MB和1个20MB文件,那么产生3个block,大小分别是64MB、36MB、20MB。
replication是hdfs为了数据安全而做的数据冗余备份,默认是3份。备份的单位是按照block进行备份。
2.Shell对HDFS进行操作
对HDFS操作的命令格式是hadoop fs
或hdfs dfs
。命令格式为hadoop fs -ls hdfs://cyyun:9000/
,也可以使用hadoop fs -ls /
,/
表示HDFS根目录,是hdfs://cyyun:9000/
的简写。
2.1-ls <path>
表示对HDFS目录的查看
hadoop fs -ls /
显示根目录下信息 -ls -d <path>
列出目录 -ls –h <path>
显示更易读的大小 -ls –R <path>
递归查看
2.2-mkdir <path>
创建目录
hadoop fs -mkdir /test
创建一个test目录 -mkdir -p <path>
递归创建
2.3-put <src> <des>
从Linux上传文件到HDFS
hadoop fs -put /root/Documents/text1.txt /
将Linux目录下的text1.txt文件上传到HDFS根目录下 -put -p
可选,保留原文件的一些特性 -put -f
可选,直接覆盖
2.4-text <path>
查看文件内容
hadoop fs -text /text1.txt
2.5-get <src> <des>
从HDFS下载文件到Linux
hadoop fs -get /text1.txt /root
2.6-rm <path>
删除目录
-rm -R
递归删除 hadoop fs -rm -R /test
2.7-appendToFile
向文件追加数据
hadoop fs -appendToFile /root/1.txt /input/test1.txt
将Linux上的文件追加到HDFS上的文件中 -appendToFile -
-
代表命令行输入以Ctrl+C结束
2.8-cp <src> <des>
复制
hadoop fs -cp /input/test1.txt /count
2.9-mv <src> <des>
移动,重命名
hadoop fs /input/test1.txt /input/test2.txt
重命名
2.10-cat <path>
查看文件内容
hadoop fs -cat /text1.txt
2.11-setrep <blockNum> <path>
修改副本数
hadoop fs -setrep 3 /input/test1.txt
修改副本数为3个 -setrep -w
表示等待操作执行完毕才退出 -setrep -R
如果是目录,那么会递归设置该目录下的所有文件的副本数
2.12-help [command]
查看命令的帮助信息
hadoop fs -help ls
查看ls的一些操作信息