分布式文件系统HDFS

一、hdfs相关概念

namenode包括fsimage和editlog组成。
fsimage:保存系统文件树,记录块大小及组成文件的块、访问权限、文件的复制等级、修改和访问时间。
editlog:记录对数据的增删改查等操作。
datanode:将数据保存到linux文件系统即可,负责存和取。
至于块被放在哪个地方是由namenode构建清单,与datanode沟通。

  • 如果只有fsimage则运行过慢,所以设置editlog。
  • editlog不断增大怎么解决,secondnamenode冷备份,某个阶段停止使用editlog,使用secondnamenode来操作。
    hdfs运行机制
    secondnamenode

二、hdfs体系结构

hdfs体系结构
基于tcp/ip通信协议名称节点交互,客户端取数据通过RPC协议与数据节点远程交互。
局限性:所有元数据都保存在名称节点的内存中,内存有上限;性能瓶颈,整个hdfs吞吐量受单个名称节点的限制;隔离问题,只有一个名称节点,一个命名空间,无法对不同应用进行隔离;单点故障,secondnamenode冷备份。在hdfs2.0中解决。

三、hdfs存储原理

hdfs存储原

3.1.冗余保存的问题

  • 加快数据传输速度:当多个客户端同时访问时,可分别访问各节点的数据。
  • 易检查数据错误:参照。
  • 保证数据可靠性:当数据副本数小于设定副本,自动周期性恢复。
    ![hdfs优势](https://img-blog.csdnimg.cn/20200208130325979.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW5iZW5nYW5n,size_16,color_FFFFFF,t_70
    hdfs文件副本存放策略
  • 1.集群内部发起请求,谁发起存给谁
  • 2.如果外部某个节点发起写数据请求,随机挑选磁盘不太满,cpu不太忙的节点存放第一个副本,第二个副本放在和第一个副本不同机架上,第三个副本放在第一个副本几机架上的其他节点上。第四个第五个等随机放。hdfs副本存放原则hdfs读取数据策略
  • 1.就近读取:调用API获取所属ji架的ID,从NameNode获取副本存放的位置,调用API获取机架ID,如果发现某个数据副本的机架ID与客户端ID相同,则就近获取,如果没有则随机选取一个副本读取。
  • 2.数据的错误恢复:当NameNode出错后,暂停一段时间,去SecondNameNode中去将相关元数据恢复。hdfs1.0是冷备份需要暂停服务,2.0热备份不存在暂停。如果数据节点宕机,则将其他节点数据复制。
  • 3.数据出现错误:存储时生成的块的校验码判断数据是否出错。

四、hdfs数据的读写过程

在这里插入图片描述

4.1hdfs读取数据原理:

在这里插入图片描述

4.2hdfs写数据原理

在这里插入图片描述

hdfs编程实践

在这里插入图片描述
步骤一:新建java工程,拷贝hadoop-common jar包,将hadoop目录下的core-site.xml和hdfs-site.xml文件拷贝到eclipse工作目录的bin目录下。
步骤二:判断hdfs文件系统下是否存在input.txt文件。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值