HDFS原理与应用 课后习题 | 青训营笔记

171 阅读3分钟

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

题目来源:【大数据专场 学习资料三】第四届字节跳动青训营 - 掘金

思考题

  • 为什么需要存在这么多不同的分布式存储系统?

    • 基于不同的目的设计的,比如hdfs是为了满足高可用、高容量的需求,对象存储是为了存储大规模非结构化数据
  • 在实际运行过程中,HDFS可能会有哪些异常场景?

    • 写异常

      • Client挂掉:租约未释放,副本不一致 -> 需要不断续约 lease recovery
      • DataNode挂掉:Pipeline Recovery,重新选择DataNode
      • NameNode挂掉:重新选举NameNode
    • 读异常

      • DataNode挂掉或很慢:更换节点
  • HDFS诞生于2006年,依照当时的硬件条件设计,以今天的硬件水平来看,哪些设计可以改进?

    • 数据块被切割成128MB,现在硬件容量更大,可以切割更大的数据块,数据不需要从多个节点读取数据,降低读写耗时
  • DataNode的启动扫盘设计存在哪些问题?可以如何优化

    • DataNode启动扫盘分为

      • 读取解析数据目录即datadir所配置的目录。
      • 检查这些目录对应磁盘是否是坏的磁盘(此步骤现有的逻辑为串行执行)。
      • DataNode发送心跳信息,向NameNode进行注册。
      • 扫描各个数据目录下的数据块,并将这些数据块初次汇报给NameNode。
    • 问题:检查目录是否损坏为串行之行

    • 优化:改成并行执行

  • 什么是分布式系统的“脑裂”?

    • 同时有多个节点认为自己是Leader(hdfs为NameNode)
  • HouseKeeping组件的设计需要注意哪些点?

    • 处理范围:可以只处理最新的数据,按日期划分
    • 处理周期:可以每天处理一次
    • 处理条件:DataNode的容量不均衡评估阈值,副本的放置策略
  • HDFS作为通用存储场景,有哪些优缺点?

    • 优点:高可用,大容量,可扩展等
    • 缺点:不适合低延时数据访问,无法高效的对大量小文件进行存储,不支持并发写入、文件随机修改
  • 以各大云厂商相关产品为切入点,大数据存储领域发展有哪些趋势?

    • 数据湖:AWS Glue,可以快速完成复杂的ETL过程,处理完的数据,既可以注入数据湖,也可以给数仓或数据库用;Amazon Athena,这个工具,让我们可以用标准的SQL,对存储在S3里的数据进行查询,不管是结构化的还是非结构化的。这就意味着,大家可以用最熟悉的SQL,轻松在S3硬地里“吃土”,当然也能在湖里“划水”,轻松进行数据洞察。
    • 云存储:不存储到各自维护的节点上,统计都挂到云上的节点,

探索学习

  • 进一步了解可观测性工程

    • 日志、Metrics打点、trace链、Grafana看板
  • 进一步了解大数据生态一些开源系统,理解它们要解决的问题

    • 调度系统AirFlow

      • 通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具,不需要知道业务数据的具体内容,设置任务的依赖关系即可实现任务调度。
    • ETL系统 Airbyte

      • 数据整合工具,抽取、转换、加载,将不同数据源数据都转换成统一目录管理
    • 数据开发 dbt

      • 转换数据库或数据仓库中的数据,在 E(Extract)、L(Load)、T(Transform) 的流程中,仅负责转换(transform)的过程
    • 元数据系统 Apache Altas, LinkedIn DataHub

      • 元数据管理/治理平台