Hadoop之HDFS简介

HDFS
分布式文件系统,为海量的数据提供了存储。
可以把HDFS简单理解为一个分布式的,可以动态扩展并有冗余备份,用来存储大规模数据的大硬盘。

HDFS的文件被分成块进行存储,默认块的大小为64M,所以说块是文件存储和处理的逻辑单元。

HDFS的组成:

  1. NameNode:管理数据的节点,每个HDFS集群只有一个,管理HDFS的名称空间和数据块映射信息,配置相关副本信息,处理客户端请求。
    元数据存储在内存(快速查询)与磁盘(崩溃恢复)中,其内容有:文件存储位置,切块数,文件块存储的DataNode地址,由Fsimage与Edits与Fstime文件内存与磁盘中的数据组成。

    Fsimage:存储元数据,是一个二进制文件,记录了HDFS中所有文件和目录的元数据信息;
    Edits:存储HDFS的操作,启动hdfs时,会生成edits文件;
    Fstime:记录上一次的更新时间;

  2. SecondaryNamenode:辅助NameNode,实现高可靠性,进行Fsimage和Edits的定期合并,推送给NameNode,起到一定的备份作用,但并不是NameNode的热备份,NameNode的备份需要借助Journalnode,但紧急情况下可以辅助和恢复NameNode。

  3. DataNode:一个大的数据分块存储的节点,存储实际数据,并汇报状态信息给NameNode,默认一个文件会备份3份在不同的DataNode中,实现高可靠性和容错性。

  4. Client:切分文件,首先与NameNode交互,获取目标文件的位置信息,然后与DataNode交互,读写数据。

图片来源于网络

初次使用hdfs时,有一个默认的edits和fsimage的合并周期是1分钟,以后再使用hdfs的过程中,edits-inprogress到达默认的合并周期(3600s)会执行。或者手动合并指令(hadoop dfsadmin -rollEdits),或者停止hdfs再启动。

Edits和Fsimage的合并流程如下:

  1. 开始合并时,SNN 会把 edits 和 fsimage 拷贝到自己服务器所在内存中,开始合并,合并生成一个名为 fsimage.ckpt 的文件。
  2. 将 fsimage.ckpt 文件拷贝到 NameNode ,成功后,再删除原有的 fsimage,并将fsimage.ckpt文件重命名为 fsimage。
  3. 当 SNN 将 edits 和 fsimage 拷贝走之后,NameNode 会立刻生成一个 edits.new文件,用于记录新来的元数据,当合并完成之后,原有的 edits 文件才会被删除,并将 edits.new 文件重命名为 edits文件,开启下一轮流程。

特点:

  1. 数据冗余,硬件容错
  2. 流式的数据访问
  3. 存储大文件

应用:

  1. 适合数据批量读写,吞吐量高。不适合交互式应用,低延迟很难满足。
  2. 适合一次写入多次读取,顺序读写。不支持多用户并发写入相同文件。

常用操作指令:
#初始格式化
hadoop namenode -format
#打印Hdfs当前文件夹
hadoop fs -ls/
#创建并上传文件操作
hadoop fs -mkdir input
hadoop fs -put hadoop_env.sh input /
#查看具体文件
hadoop fs -cat input/hadoop_env.sh
#下载文件
hadoop fs -get input/hadoop_env.sh hadoop_env2.sh
#查看文件系统所有文件
hadoop dfadmin -report

Edits和Fsimage文件内容可参考:

https://blog.csdn.net/q35445762/article/details/91472746

HDFS流程相关可参考:

https://blog.csdn.net/weixin_38625805/article/details/82120573

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值