原文链接: HDFS(一、HDFS概述、客户端、shell操作).
1. HDFS定义
HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,他是分布式的,由很多服务器联合起来实现其功能,集群的中的服务器都有各自的角色。
HDFS使用场景:适合一次写入,多次读出的场景(不支持数据修改),且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用(读写频繁的)
2. HDFS优缺点
1. 优点:
2. 缺点:
3. HDFS组成架构
- **NameNode(nn):**就是master。它是一个主管,管理者。
:管理HDFS的命名空间;
:配置副本策略;
:管理数据块(Block)的映射信息;
:处理客户端读写请求。 - DataNode:就是Slave ,3.x叫worker。NameNode下达命令,DataNode 执行实际的操作。
:存储实际的数据块;
:执行数据块读写操作; - Client:就是客户端。
:文件切分,文件上传 HDFS 的时候,Client 将文件切分成一个个的 Block ,然后上传;
:与NameNode交互,获取文件位置信息;
:与DataNode交互,读取/写入数据;
:Client提供一些命令来管理HDFS,比如NameNode格式化;
:Client可以通过一些命令来访问HDFS,比如对HDFS的增删改查操作。 - Secondary NameNode:并非NameNode的热备,当NameNode挂掉时候,并不能马上替换NameNode并提供服务。
:辅助NameNode,分担其工作量,比如定期合并Fsimage(镜像文件)和Edits(编辑日志),并推送给NameNode;
:在紧急情况下,可辅助恢复NameNode。
4. HDFS文件块大小
134217728/1024/1024 = 128M
如果磁盘为固态硬盘等传输速率更高的,则可以将block设置为更大的大小
5. HDFS的Shell操作
基本语法
[root@hadoop100 hadoop-3.2.1]# hdfs dfs
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] [-d] [-t <thread count>] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc