青训营第八课HDFS原理与应用|青训营笔记

112 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第8天

课堂内容

HDFS的基本介绍

  • HDFS的生态定位:存储层 image.png
  • window单机文件系统:NTFS,FAT32,exFAT image.png
  • Linux单机文件系统:BTRFS,ZFS,XFS,EXT4 image.png
  • 分布式文件系统:HDFS,CEPS,CubeFE
    • 大容量
    • 高可靠
    • 低成本
  • 分布式存储系统 image.png
  • HDFS功能特性 image.png
  • HDFS的主要节点:zookeeper,JournalNode,NameNode,DateNode
  • 与HDFS交互的方式:命令行和window界面 image.png image.png

HDFS架构原理

  • 三大件组件:client,NameNode,DateNode image.png
  • 写数据:client端向namenode申请写入,namenode根据datanode的存储情况分配区块地址,然后往datanode写三份数据块,写完反馈一个ACK,然后还会有Flush的调整数据,全部写完就client向namenode发送完成的信息。 image.png
  • 读数据:client端向namenode发送请求,namenode返回地址,然后client去datanode中去读数据块。 image.png
  • 元数据节点namenode的作用功能 image.png
  • 数据节点datanode的作用功能 image.png

HDFS的关键设计

  • 分布式存储系统基本概念 image.png
  • namenode目录树维护:通过EditLog写入journalnode来维护。fsimage:目录树,同时他是内存存储,但是定期写入硬盘。 image.png
  • namenode数据放置:balanner image.png
  • Datanode image.png
  • HDFS写异常处理
    Lease Recovery:用户端坏了,我们去Datanode中三份中长度最短的为写入的数据,同时租约超时10分钟我们namenode会在新请求进来的时候踢掉上次访问。 image.png Pipeline Recovery:重新构建pipeline节点 image.png
  • HDFS读异常处理:有三份,一份挂了,找另一份 image.png
  • 所谓旁路系统:Balancer,Mover image.png
  • 控制面建设:HDFS UI image.png

HDFS的应用场景

  • 在公司方面 image.png
  • 在生态方面 image.png
  • 用pyspark读写HDFS文件:交互过程
    • 第一行读文件
    • 第二行我们要的元素
    • 第三行查询我们想要的数据
    • 最后一行将结果保存在本地或者HDFS image.png image.png
  • ETL:抽取,转化,下载。这是一个系统,主要解决写的问题。 image.png
  • 在OLAP方面 image.png
  • 通用存储的应用 image.png