一.HDFS初识
1.1是什么
HDFS是hadoop的分布式文件系统
1.2组件角色
HDFS中组件有3个,包括NameNode,DataNode,Client
NameNode是元数据管理者,负责管理和记录文件的分块和存储的节点
DataNode是工作节点,负责数据块的读写和检索操作
Client是客户端,负责代表用户和NameNode和DataNode的交互,来访问整个系统的对象
二.HDFS读写文件操作
2.1读文件操作流程
2.1.1client向namenode发送请求,寻找数据块对应的位置
2.1.2NameNode返回数据块的元数据信息
2.1.3client直接和datanode交互,读取每一个block块的内容
2.2写文件操作流程
2.2.1client向namenode发送请求,寻找可以写数据的block块
2.2.2client获取到可以写数据的block块信息后,向DataNode中的block块进行写操作
写完第一个block块之后,以package的形式,复制到其他的block块上
2.2.3等待所有数据块全部写完之后,client收到DataNode的返回信息,然后告诉namenode
datanode会向namenode报告所有block块的元数据信息
三.HDFS的高可用
1.冗余备份,是为了防止宕机,导致数据丢失
2.跨机架副本存放,是为了防止整个机架的宕机
3.心跳检测,是为了确认datanode没有宕机
4.数据完整性检测,当客户端从datanode获取内容时,会和之前的数据进行比较
5.安全模式,启动HDFS的时候,会启动安全模式,这时候不能进行写操作,,当namenode收到所有元数据之后,确认安全后才会退出
6.核心文件备份,这里的核心文件是指映像文件和事务日志文件,这些文件损坏可能会导致HDFS无法使用
7.空间回收,从hdfs删除的文件会先放在/trash中,这个文件会定期清理,也可以在清理前从这里面找到删除的文件
四.HDFS的shell应用
4.1常用命令
hdfs dfs -ls
hdfs dfs -cat /user/lidongpeng
hdfs dfs -mkdir
hdfs dfs -rm -r
4.2HDFS的javaApi应用
4.2 操作步骤
4.2.1maven环境搭建
pom配置依赖
编码实现
maven打包
上传到本地
通过yarn的命令执行jar包