Hdfs的读出机制
- 客户端向NameNode通过RPC发送读请求。
- NameNode确认客户端是否有读权限,如果有,给客户端返回一个响应,如果没有,客户端抛出一个异常。
- 客户端向NameNode请求需要读取的文件。
- NameNode返回存储此文件的每个Block块所在的位置的列表。
- 客户端会从返回的列表中挑选一台最近的,建立连接,读取Block块。读取的时候会将Block块统计目录下的校验信息,一起读取过来。
- 客户端读取完Block块信息以后,会计算出一个校验和跟读取过来的校验和进行对比,如果能匹配上,就说明正确。如果匹配不上,就从其他节点上读取Block块。