hadoop原理分析

hadoop
    hadoop集群
    nameNode概述
        (1):nameNode是hdfs的核心.
        (2):nameNode也称为Master
        (3):nameNode存储hdfs的数据,文件系统中所有的文件目录树,并跟踪整个集群中的文件
        (4):nameNode不存储实际数据或数据集.数据本身数据存储在dataNode中.
        (5):nameNode知道Hdfs中任何给定文件的块列表及其位置.使用此信息nameNode知道如何从块中构建文件
        (6):nameNode并不持久化存储每个文件中各个块所在的dataNode的位置信息,这些信息会在系统启动时从在数据节点重建.
        (7):nameNode对于hdfs很重要,当nameNode关闭时,hdfs/hadoop集群无法访问.
        (8):nameNode是hadoop集群中的单点故障
        (9):nameNode所在机器通常会配置有大量内存(RAM).
    dataNode概述
        (1):dataNode负责将数据存储在Hdfs中
        (2):dataNode也称为slave.
        (3):nameNode和dataNode会保持不断通信
        (4):dataNode启动时,他将自己发布到nameNode并汇报自己负责持有的块列表
        (5):当某个nameNode关闭时,他不会影响数据或者集群的可用性.namnode将安排由其他DataNode管理的块副本复制
        (6):DataNode所在机器通常配置有大量的硬盘空间.因为实际数据存储在dataNode中.
        (7):dataNode会定期(dfs.heartbeat.interval配置项配置,默认是3秒)向nameNode发送心跳.如果nameNode长时间没有接收到dataNode发送的心跳,nameNode就会认为该DataNode失效.
        (8):block汇报时间间隔取参数 dfs.blockreport.intersec,参数未配置默认为6小时
    hdfs读文件流程图
    hdfs读取文件流程
        (1):Client向nameNode发起rpc请求,来确定请求文件block所在的位置;
        (2):NameNode会视情况返回文件的部分或者全部block列表,对于每个block,nameNode都会返回含有该block副本的dataNode地址
        (3):这些返回的DN地址,会按照集群拓扑结构得出dataNode与客户端的距离,然后进行排序,排序两个规测,网络拓扑结构中距离client近的排靠前;心跳机制中超时汇报的DN状态为STALE,这样的排靠后;
        (4):client选取排序靠前的dataNode来读取block,如果客户端本身就是dataNode,那么将从本地直接获取数据.
        (5):底层上本质是建立socket stream (FSDataInputStream),重复的调用父类的dataInputStream的read方法,直到这个快上得数据读取完毕;
        (6):当读完列表的block后,若文件读取还没有结束,客户端会继续向nameNode获取下一批block列表;
        (7):读取完一个block都会进行checksum验证,如果读取dataNode时出现错误,客户端会通知nameNode,然后在从下一个拥有该block副本的开始
    hdsf上传文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞腾创客

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值