Hadoop分布式文件系统数据流:文件读取与写入
文件读取(流程图):
节点距离:两个datanode节点分别到他们最近的共同父节点距离的和(举例:相同机架不同服务器节点距离为2,相同机房不同机架节点距离为4,相同数据中心不同机房节点距离为6)
在读取过程中如果某datanode节点宕机,就会找下一个datanode去拉取数据,并且client会记下此节点,下次读取数据时直接跳过此节点
若拉取回的数据块损坏,则到下一个datanode节点拉取数据,并且clien记下此节点,然后向datanode汇报此datanode节点上该数据块有错误,namenode会删除此块,并且重新复制一份复本
这样设计的好处是减轻namenode负担,可以承载并发,读取数据的主要操作全在datanode和client上,对hdfs的稳定性没有影响
HDFS一般是存少读多,这种情况下只要保证namenode正常工作,负载不大就可以了。
文件写入(流程):
上传数据时会把每个block切分成一个个的packet,chunk校验