首页 > 技术文章 > HDFS入门

yhc-910 2022-04-21 10:17 原文

 一、系统架构

 

二、构成部分

1、Client 客户端,负责客户端和hdfs系统的交互。

2、NameNode 文件系统管理者,维护文件metadata信息。

3、DataNode 文件系统的文件存储者,提供文件的读/写操作。

4、Secondary NameNode 文件系统的监控者,监控hdfs状态和日志记录,备用NameNode

5、ResourceManager 资源管理者,负责集群中所有资源的统一管理和分配。

6、NodeManager 应用管理者,负责每台DS的管理。

三、性质

1、适合大文件类型的处理,采用分块存储,以64M为一块。

2、文件存储时,会备份多份文件到不同服务器。

3、文件一旦写入,不能修改,只能追加。

四、原理

1、Client调用API进行读/写操作;

2、连接NameNode获取文件元数据/创建文件元数据;

3、连接DataNode,读取文件内容/写入文件内容,写入时,会备份文件到不同节点;

五、缺陷

(1)不适合大量小文件存储,如果有这个需求,要对小文件进行压缩

(2)文件不允许修改(可以追加),只能删了重新上传

六、环境搭建(系统:utunbu18

1、Hadoop 3.2.0

 

2、JDK1.8

 

3、修改配置文件:

hadoop-env.sh 配置环境变量

core-site 配置namenodedatanode之间的通讯

hdfs-site 配置系统相关参数,比如备份数、页面监听地址

mapred-site.xml 配置资源调用模式为yarn

yarn-site.xml 配置resourceManagernodeManager

4、启动hdfsyarn集群

 

5、访问HDFSYARN集群的Web可视化页面

 

七、项目接入

1.本地解压hadoop.gz.tar压缩包,并配合环境变量

2.项目pom添加hadoop-commonhadoop-clienthadoop-hdfs依赖

3.添加相关bean

 

4.测试

 

5.文件可正常下载

 

github地址:https://github.com/YhcAndHc/dfs-demo.git

注意里面有hdfs和fastdfs两个demo,请按需下载。

 

推荐阅读