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

[经验分享] hadoop Namenode和DataNode架构分析

[复制链接]

尚未签到

发表于 2015-7-14 08:11:01 | 显示全部楼层 |阅读模式
  从架构角度而言,hadoop HDFS 是一个master/slave架构的系统。
DSC0000.gif
  NameNode类似于master的身份,负责管理文件系统的名字空间(namespace)以及客户端对文件meta信息的访问。所谓meta信息,就是指文件存储路径,复制因子,名称等信息以及修改日志等。同时NameNode还通过侦听客户端发送过来的心跳信息,维护整个hadoop Cluster的节点状态。
  
  HDFS中的实际数据则由DataNode负责存储和维护,DataNode是一个slave身份。
  向HDFS写入一个文件数据时,默认情况下hadoop系统Block Szie=64MB,将当前文件切分成多个数据块。除了该文件的最后一个数据块可能小于64MB之外,其他均等于64MB。hadoop HDFS的replication机制则根据文件复制因子数量,将该文件切分的Block复制多份,分别复制到其它DataNode。
  HDFS Replication机制有点类似于cassandra的机制,不过比起cassandra仍然逊色不少。例如cassandra默认首先向远程datacenter复制一份,然后向同一个机房的另外一个机架复制。而Hadoop HDFS仅仅向另外一个机架进行数据复制。当出现硬件错误时,通过这种策略尽可能的减少数据丢失的风险。
  当然还会记录其校验信息,用于验证数据完整性。默认使用CRC32算法。不过根据taobao相关技术人员说法,认为自带的crc32算性能较差。
  DataNode在分布式环境中基本都是每台机器一个jvm进程。而NameNode则始终只分布在一台机器,只有一个JVM进程。
  当客户端进行HDFS数据访问时,首先需要访问NameNode,获取访问目标文件的meta信息以及block分布信息,对于实际数据的IO,则直接通过DataNode进行。因此HDFS Master/Slave架构中的Master,如果设计优化,即便是海量数据,IO的压力仍然相对会比较小。
  而真正进行数据访问时,主要是DataNode负责并行读写,因此虽然单台机器的硬盘假设读写90MB/s,如果1000台机器,则读写IO每秒可以达到90*1000的吞吐量。因此对于互联网公司例如taobao接近3000台的hadoop cluster规模,每秒IO超过250G还是非常轻松的。对于类似集群,处理1T数据,延迟大多数都小于2分钟。显然对于这种离线型的海量数据分析,显然具有很大的应用前景。
  影响NameNode一个最终要的因素主要是小文件数量以及文件更改,迁移等操作影响,这个我们将在后面介绍。

运维网声明 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-86372-1-1.html 上篇帖子: hadoop shell命令远程提交 下篇帖子: hadoop集群全纪录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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