时序图解析Hadoop HDFS 文件读取访问流程(未完待续)

  最近有一个优化HDFS读取访问的需求,需要根据访问者的位置计算得到最佳的datanode返回给client,工作中,搜索了各种文章和材料,但是几乎没有太深入的,对我这个初学者来说,信息量不大够,所以就自己动手深入的看了一下源码,对相关的机制进行了一定的探索。根据自己的体会写一点心得,文中部分术语不够准确的希望能够留言予以指正。

  • HDFS文件访问的机制

无论那种情形(CLI、Java、REST...),HDFS文件系统最终都是通过在节点上的HDFS Client来实现对文件的访问,在逻辑上来讲,是这样的:


client

在实际的物理拓扑中,是这样的:

  • JAVA API client


    javaclient
  • REST API client


    REST

    担负着Client角色的是org.apache.hadoop.hdfs.DFSClient这个类,它提供了一系列访问HDFS的接口和工具。
    第一幅图是我手动画的,为了熟悉ubuntu下的dia绘图工具,加上删选和操作关联比较紧密的类,前后花了将近4个小时。。。第二幅图是用eclipse的插件Objectaid辅助生成的,手动调整了个别的函数调用,虽然这厮功能强大,但是也有不够完善的地方,不过瑕不掩瑜,毕竟比dia方便很多。

  • Java API 方式文件读取时序图一(Using dia):
Hadoop HDFS open文件操作时序图
  • Java API 方式文件读取时序图二(Using Objecaid for eclipse):
Java API sequence
  • webHDFS Client get操作时序图(Using Objecaid for eclipse):
REST sequence

  待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容