设为首页 收藏本站
查看: 1191|回复: 0

[经验分享] Hadoop学习笔记-HDFS结构及原理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-3-11 09:46:08 | 显示全部楼层 |阅读模式
1.名词
  NameNode、DataNode、机架、Client、File、Block、Package
2.组件间的关系:

  2.1.机架通过交换机相连,HDFS假设:在同一个机架之间传输数据比机架间传输数据快。

  2.2.NameNode、DataNode指实现不同功能的服务器。NN只用一台,DN需要若干台。

  2.3.一个File在HDFS中按照Block存储,冗余,一般为3份(可配置)。一份位于NN机架上,另外两份位于相同但不同于NN的机架上。即,1T的数据,需要3T的物理存储空间,3T的网络流量。
  2.4.NN,管理客户端读写请求,管理HDFS命名空间,管理数据块映射;DN,以Block为单位存储数据,Blcok大小为64M(可配置)
3.写:

  举例说明,Client有一个100M的文件要写入HDFS系统,HDFS由6台服务器,一个交换机组成,其中一个服务器用作NN,5个服务器用作DN,名称为Host1、2、3、4、5,流程如下:

  1.Clinet将File分为两个Block,Block1(64M)、Block2(36M)

  2.Client通知NN,发出写文件请求

  3.NN记录分配Block信息,并返回可用的DN

  Block1: host2,host1,host3

  Block2: host7,host8,host4



  NN分配Block映射时,按照以下原则:

  第一个副本位于同NN的机架上,第二个副本位于不同于第一个副本的机架上,第三个副本位于同于第二个副本的机架但不同的服务器上

  4.Client将Block1按照64K为单位,分成1024个Package,向Host2发送第一个Package;

  5.Host2向Host1发送第一个Package,Client向Host2发送第二个Package;

  6.Host1向Host3发送第一个Package,Client向Host2发送第三个Package,Host2向Host1发送第二个Package;

  7.如上过程,直到Block1发送完成。Block发送完成后,Host2、1、3向NN发送消息表明数据传输完成,Host2向Client发送消息表明数据传输完成

  8.Client向NN发送消息表明Block1发送完成

  9.如上过程,开始发送Block2



  这个过程中,NN和DN通过心跳信息通信,心跳信息中包含传输的完成进度情况,DN是否活着。如果DN死了,将分配给DN的数据放到其他的DN上去。3个DN的选择原则可以看出,如果一个DN死了,不能读取数据时,可以从同机架上的DN读取数据;一个机架死了,可以从另外一个机架上读取数据。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-15730-1-1.html 上篇帖子: hadoop的IO和MapReduce优化参数 下篇帖子: Hadoop2.2.0 第一步完成MapReduce wordcount计算文本数量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表