前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何系统学习hdfs

如何系统学习hdfs

作者头像
陈猿解码
发布2023-02-28 14:55:24
3170
发布2023-02-28 14:55:24
举报
文章被收录于专栏:陈猿解码

这一年多的时间里,hdfs源码(原理)分析累计也写了30多篇文章了,来一篇文章进行汇总。这篇文章将按照自己的理解来系统的梳理下,应该如何系统的学习hdfs。

先直接上个脑图:

  • 入门

首先得了解HDFS是个什么东西,有些什么功能,有哪些比较重要的概念或术语;

然后了解hdfs由哪些组件(模块)构成,分别在整个系统中充当什么角色;

随后自己动手安装部署几遍,包括standalone、HA模式。从安装部署过程中了解有哪些步骤,有哪些配置文件,常用的配置项有哪些,应该如何进行配置才能正确搭建;

安装部署完成后,通过自带的命令进行一些简单的操作,这样会有个整体的概念。

  • 基本使用

简单入门后,接下来是通过编写简单示例程序,对hdfs进行操作使用,包括目录的操作(创建、删除目录)、文件的常规操作(创建、读、写、追加写等)等等。

通过这一步后,可以对API有简单了解,同时可以加深一些概念的理解,比如块、副本等。

  • 进阶

通过对应api完成一些基本操作后,然后可以进一步深入下hdfs的读写流程,虽然这个读写流程网上的文章随处可见,但还是建议你自己折腾一遍,结合抓包工具、客户端服务端日志、单步调试等手段,了解整个读写流程,甚至可以细到掌握传输数据包的格式是怎样的。

但了解了正常的读写流程就结束了吗?

不,这才刚刚开始!你需要在读写过程中增加大量的异常情况。例如,写过程中,其中一个dn异常会怎样?写过程中,客户端自身异常(例如被kill),此后再追加写同一个文件会怎样?块的默认配置3副本,但实际只有2个dn节点,能不能正确完成写文件操作?等等。。

通过异常测试,观察结果并结合日志、代码分析其中的原因,这样,可以全面掌握读写流程中的细节以及相关原理。

对读写流程这一大块逻辑啃下来后,可以涉猎其他的知识,例如hdfs可以让多用户同时操作,那么首先客户端如何指定文件目录操作的用户?

既然是多用户,那么自然不希望其他用户操作自己的文件目录,那么这就又涉及权限管理。同样,还涉及对不同用户进行存储空间的管理,那么就需要知道配额的功能。

如果普通磁盘不能满足读写性能,考虑上ssd,那么文件如何正确存储到ssd上,以及从ssd上加载,这会涉及hdfs的存储策略、甚至是机架感知、短路读等。

以上都是从用户的角度出发来摸索hdfs的原理,除此之外,hdfs的高可用具体是如何体现,也可以深入去探索研究。

  • 高阶及优化

对上面的原理都摸索掌握后,日常的使用可以说是小菜一碟了,那么接下来要考虑的是如何去提升整体的性能了,例如海量的文件存储、数据一致性、大量的读写并发、以及启动速度(通常在异常断电后)等等。

这些涉及了数据在内存中的存储、持久化的存储、元数据的管理、块汇报(增量汇报汇报与全量汇报)、块副本的删除、复制等逻辑,以及启动的流程、持久化文件格式、rpc机制等等。

了解掌握这些原理,同时结合实际的性能测试,处理性能问题能够更加得心应手。

  • 运维

最后是运维,简单来说分几个方面,一方面是各种异常情况的处理,这些异常包括磁盘坏了,网络断了,节点异常了,依赖的服务异常了等,hdfs面对这些异常时,自身是如何进行处理的;另一方面是,如何对hdfs进行监测,以掌握整体的健康状态并及时进行必要的处理。最后就是需要手动进行处理的情况了,例如数据进行平衡、坏盘的处理、小文件的归档等等。

以上,就是个人对hdfs的一些总结概括,其中大部分原理有进行过总结(公众号子菜单中能够找到这些文章《深入hdfs系列》),这里就说得相对简单。

另外,还有两个相对比较重要的知识点:EC和联邦,没有列到脑图中,后续有时间进行源码研究后,再总结~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陈猿解码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档