大数据学习----关于hdfs
HDFS
优缺点
优点
- 高容错性
- 适合处理大数据
- 可构建在廉价机器上
缺点
- 不适合低延时数据访问
- 无法高效的对大量小文件进行存储
- 存储大量小文件的话,它会占用
NameNode 大量的内存来存储文件目录和块信息。 - 小文件存储的寻址时间会超过读取时间
- 存储大量小文件的话,它会占用
- 不支持并发写入、文件随机修改
- 一个文件只能有一个写,不允许多个线程同时写
- 仅支持数据追加(append
) ,不支持文件的随机修改
组成架构
- NameNode:它是主管理者
- 管理
HDFS 的名称空间 - 配置副本策略
- 管理数据块映射信息
- 处理客户端读写请求
- 管理
- DataNode:slave。
NameNode 下达命令,DataNode 执行实际的操作- 存储实际的数据块
- 执行数据块的
I/O 操作
- Client:客户端
- 文件切分
- 与
NameNode 交互,获取文件的位置信息 - 与
DataNode 交互,IO Client 提供一些命令来管理HDFS Client 可以通过一些命令来访问HDFS
- Secondary NameNode:并非
NameNode 的备份。他并不能替换NameNode 。- 辅助
NameNode ,分担工作量,比如定期合并Fsimage 和Edits ,推送给NameNode 。 - 紧急情况下可辅助恢复
NameNode
- 辅助
文件块大小
-
HDFS 中文件在物理上是分块存储的,块的大小可以通过配置参数来规定,默认大小在Hadoop2.x 版本中是128M -
如果寻址时间约
10ms ,查找到目标block 的时间为10ms -
寻址时间为传输时间的
1% 时,则为最佳状态。 -
目前的传输速率普遍为
100MB/S
HDFS 的Shell 操作
-
基本语法
bin/hadoop fs 具体命令
或者bin/hdfs dfs
-
常用命令
-
启动
hadoop 集群sbin/start-dfs.sh
sbin/start-yarn.sh
-
-help
: 输出这个命令的参数 -
-ls
: 显示目录信息 -
-mkdir -P
:在HDFS 上创建目录 -
-moveFromLocal
:从本地剪切到HDFS 上 -
-appendToFile
:追加一个文件到已存在的文件末尾。注意:HDFS 只支持文件追加 -
-cat
:显示文件内容 -
-chgrp、-chmod、-chown
:修改文件所有者,用法于与Linux 上一样-copyFromLocal
: 从本地文件系统中拷贝到HDFS 路径去
-
-cp
:从HDFS 的一个路径拷贝到HDFS 的另一个路径 -
-mv
:从HDFS 的一个路径移动到HDFS 的另一个路径 -
-get
:等同于-copyToLocal
从HDFS 下载到本地 -
-getmerge
:合并下载多个文件,比如HDFS 的目录 -
-put
:等同于-copyFromLocal
-
-tail
:显示一个文件末尾 -
-rm
:删除文件或文件夹 -
-rmdir
:删除空目录 -
-du -h [-s]
:统计文件夹的大小信息
-
客户端操作
- 根据自己电脑的操作系统拷贝对应的编译后的
hadoop jar 包到非中文路径 - 配置
HADOOP_HOME 环境变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!