HDFS简介
Hadoop 附带了一个名为 HDFS(Hadoop分布式文件系统)的分布式文件系统,基于 Hadoop 的应用程序使用 HDFS 。HDFS 是专为存储超大数据文件,运行在集群的商品硬件上。它是容错的,可伸缩的,并且非常易于扩展。
HDFS集群主要由 NameNode 管理文件系统 Metadata 和 DataNodes 存储的实际数据。
NameNode: NameNode可以被认为是系统的主站。它维护所有系统中存在的文件和目录的文件系统树和元数据 。 两个文件:“命名空间映像“和”编辑日志“是用来存储元数据信息。Namenode 有所有包含数据块为一个给定的文件中的数据节点的知识,但是不存储块的位置持续。从数据节点在系统每次启动时信息重构一次。
DataNode : DataNodes作为从机,每台机器位于一个集群中,并提供实际的存储. 它负责为客户读写请求服务。
HDFS中的读/写操作运行在块级。HDFS数据文件被分成块大小的块,这是作为独立的单元存储。默认块大小为64 MB。
HDFS操作上是数据复制的概念,其中在数据块的多个副本被创建,分布在整个节点的群集以使在节点故障的情况下数据的高可用性。
在HDFS的文件,比单个块小,不占用块的全部存储。
Hadoop fs 和Hadoop dfs 的区别
- fs是文件系统, dfs是分布式文件系统
- fs > dfs
- 分布式环境情况下,fs与dfs无区别
- 本地环境中,fs就是本地文件,dfs就不能用了
fs涉及到一个通用的文件系统,可以指向任何的文件系统如local,HDFS等。但是DFS仅是针对HDFS的。那么什么时候用fs呢?可以在本地与hadoop分布式文件系统的交互操作中使用。特定的DFS指令与HDFS有关
HDFS常用命令
创建文件夹test
1 | hadoop fs -mkdir /test/ |
创建多层目录
1 | hadoop fs -mkdir -p /a/b |
输出目录
1 | hadoop fs -ls / |
递归输出目录
1 | hadoop fs -ls -R / |
上传文件到HDFS
1 | hadoop fs -put filename /path |
查看文件内容text
1 | hadoop fs -text /path/filename |
查看文件内容cat
1 | hadoop fs -cat /path/filename |
从HDFS下载到本地
1 | hadoop fs -get /path/filename newfilename |
删除文件(不适合文件夹)
1 | hadoop fs -rm /path/filename |
删除文件夹(递归形式)
1 | hadoop fs -rmr /path/filename |
具体其他命令可使用 hadoop fs 查找