Hadoop 文件读流程

1)流程图

    

2)流程解读

    1. 客户端执行命令(或者代码读取),调用的是dfs的FileSystem.open的方法,open传的是文件路径 

    2. 根据文件路径去NN找,NN把block块和所在位置的信息的映射关系,返回给一个FSDataInoputStream的对象

    3. 客户端拿到FSDataInoputStream对象(即block块地址列表),根据最近的网段去循环读取block块

    4. 读取完后会有一个check的动作,check完之后会关闭与DN的连接

    5. 以130M文件为例,会有2个block,6个副本,分布在不同机器上。 

    6. 当拿第一个block的机器是有问题的,会去拿第二个副本的机器上拿,依次类推

    7. 假如全部副本都损坏,即文件损坏,不能读取了

    8. 当所有block都读取完后,会拼装成一个完整的数据流,再转换成文件的内容

    9.最后close,关闭输入流


3)客户端操作

    对于客户端,操作是透明的,用户体现就是连续的数据流


【来自@若泽大数据】

猜你喜欢

转载自blog.csdn.net/qq_30130043/article/details/80434048
今日推荐