大数据之HDFS框架
前言
#博学谷IT学习技术支持#
Hadoop是一些软件的统称,其底层是Java;Hadoop主要包含HDFS分布式文件存储框架、MapReduce分布式计算框架和Yarn分布式资源调度框架。本篇文章主要介绍Hadoop中的HDFS框架。
一、HDFS介绍
HDFS的全称是Hadoop Distributed File System,Hadoop分布式文件系统。该系统是一个由多台计算机组成的集群,主要看重整体集群的工作效率,不注重单台计算机的性能,所以无论多低配置的计算机都可以加入该集群中。
HDFS系统具有文件切片的机制,可以将一个较大的文件进行切片,切分成多个较小的文件存储在该集群中不同的计算机上,取数据时再将所有的小文件进行合并,返回给客户端。
二、架构介绍

从上图可以看出,HDFS系统中的角色有NameNode、SecondaryName和DataNode。这三个角色有各自的分工,从而是HDFS集群可以正常运行。
- NameNode
- NameNode管理整个HDFS集群
- NameNode管理整个集群中的元数据,元数据就是文件在系统中存储的相关信息,不是文件内容
- Client客户端上传和下载数据都需要经过NameNode,从而获取元数据的信息
- NameNode是HDFS集群的核心,该角色一当掉,HDFS集群停止运行
- DataNode
- HDFS集群中的所有真实数据都存在DataNode中
- DataNode每隔一段时间都要向NameNode汇报其存储的Block信息和磁盘信息
- Client进行文件上传和下载,实际是在Client和DataNode间之间进行
- SecondaryNameNode
- 该角色主要辅助NameNode管理元数据,将NameNode内存中的数据存储到磁盘上
三、HDFS切片机制
Client将文件上传到HDFS系统之前会将文件先进行切片,切片后得到的每一份文件称为Block,默认大小为128M;
假设目前有一份300M的文件,Client会将该文件切成3个Block,Block1的大小为128M,Block2 为128M,Block3就为44M。
四、HDFS的副本机制
1、HDFS默认每一个Block是3个副本
2、HDFS在存放每一个Block的3个副本时,有一个放置策略:1个副本放置在本机架上,第二个副本放置在相邻的机架上,第三个副本则是放置在相邻机架的另一个槽位上
3、HDFS副本的数量必须小于等于集群主机的数量

五、HDFS的Shell命令
(一)格式:
(1)hdfs dfs … #只能用于HDFS文件系统,专门用来操作HDFS的
(2)hadoop fs … #可以用于多种文件系统,不仅可以操作HDFS,也可以操作其他文件系统,文件系统通用的操作命令
(二)操作
#1、查看指定路径的当前目录结构
hadoop fs -ls /
hdfs dfs -ls /
#2、递归查看指定路径的目录结构
hadoop fs -lsr / #已淘汰
hadoop fs -ls -R / #用这个
#3、查看目录下文件的大小
hadoop fs -du -h /
#4、文件移动(HDFS之间)
hadoop fs -mv /a.txt /dir
#5、文件复制(HDFS之间)
hadoop fs -cp /dir/a.txt /dir/b.txt
#6、删除操作 !!!!!!!!!!!!!!!!!!
hadoop fs -rm /dir/b.txt #删文件
hadoop fs -rm -r /dir #删目录
#7、文件上传(本地文件系统到HDFS文件系统) --- 复制操作 !!!!!!!!!!!!
hadoop fs -put a.txt /dir
#8、文件上传(本地文件系统到HDFS文件系统) --- 剪切操作
hadoop fs -moveFromLocal test1.txt /
#8、文件下载(HDFS文件系统到本地文件系统) !!!!!!!!!!!
hadoop fs -get /aaa.txt /root
#9、文件下载 )
hadoop fs -getmerge /dir/*.txt /root/123.txt
#10、查看HDFS文件内容
hadoop fs -cat /dir/1.txt
#11、在HDFS创建文件夹 !!!!!!!!!!!!
hadoop fs -mkdir /my_dir
#12、修改HDFS文件的权限
hadoop fs -chmod -R 777 /dir
总结
HDFS主要用于文件存储,该系统中的NameNode,DataNode和SenondaryNameNode有各自的分工,从而使数据可以正常存储和读取。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)