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

[经验分享] Hadoop剖析之HDFS

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-5-23 09:57:22 | 显示全部楼层 |阅读模式
Hadoop的分布式文件系统(HDFS)是Hadoop的很重要的一部分,本文先简单介绍HDFS的几个特点,然后再分析背后的原理,即怎样实现这种特点的。
HDFS特点1、高容错性。这是HDFS最核心的特性了,把大量数据部署在便宜的硬件上,即使其中某些磁盘出现故障,HDFS也能很快恢复丢失的数据。
2、简单一致性。这个的意思是HDFS适合一次写入,多次读取的程序,文件写入后,就不需要修改了。像MapReduce程序或者网络爬虫程序都是完美适合这个特点。
3、移动计算而不是移动数据。这个好解释,数据太大了,不好移动,HDFS提供了接口,让程序自己移动到离数据近的位置。
4、平台兼容性。平台差异应该能解决,这才能让HDFS使用更广泛。


HDFS架构1、HDFS是一个典型的主从关系,主是NameNode节点,从是DataNode节点。
NameNode节点是管理者,主要管理系统名字空间,当程序需要读取数据时,先要想NameNode询问数据块的存放位置。
DataNode节点有很多,通常以机架形式组织,机架再通过交换机连接起来。DataNode的主要功能就是保存数据块,同时还要向NameNode报告数据块的信息,没3秒发送一次“心跳”,如果10分钟没有收到心跳,那么就认为这个DataNode坏掉了,此时就需要进行数据恢复了。
2、下面介绍DataNode备份的原理,这也是HDFS有高容错性的原因之一。
在HDFS上的数据都不只是保存一下就可以了,每个文件都会被复制几次(默认3次),然后放在不同地方,以免数据丢失。
那是怎样保存的呢?每个数据块有三个副本,第一个就是数据本身,第二个保存在同一机架(可以理解为同一个硬盘)下的不同DataNode的下,最后一个保存在不同机架上的DataNode上。
3、除了Namenode和DataNode,还有个SecondaryNameNode,他的作用主要是周期性的合并NameNode中保存的关于数据块存放位置的文件,同时NameNode损坏后,可以人工从SecondaryNameNode中恢复一部分,但不是全部。
4、SecondaryNameNode并不能解决单一NameNode的问题,为了提高容错性,HDFS还有HA(high availability)机制:两个NameNode。还有Federation机制:多个NameNode。
5、数据块(block),像Linux系统每个磁盘有数据读和写的最小单位:512字节,而HDFS也有同样的概念,只不过大小变成了64M,这是因为HDFS需要多次读取,而读取是要不断寻道的,我们要尽量让寻道时间相比数据传输时间最小,如果寻道时间为传输时间百分之一,寻道时间为10ms,传输速度100MB/s,那么块大小就是100MB。以后硬盘传输速度快后,块大小可能会增加。但块太大也不好,一个任务处理一个块,任务会比较慢。当文件小于64MB时,系统同意会分配一个Block给这个文件,但对于实际磁盘资源是没有浪费的。
6、对于大量小文件,HDFS提供了两种容器,将文件统一管理:SequenceFile和MapFile。
7、压缩。压缩能减少空间,主要有三种:gzip,LZO,Snappy。gzip压缩率最高,但耗费CPU,速度也慢。Snappy压缩率最低,但速度快。LZO居中。


HDFS操作最后介绍一些常用的HDFS操作命令
1、hadoop fs -  这里是一些基本的操作:
hadoop fs -mkdir (路径) 建文件夹
hadoop fs -ls(路径)列出文件及目录
hadoop fs -put  文件 路径  上传
hadoop fs -get 文件 路径 下载

hadoop fs -text  文件  查看

hadoop fs -rm 文件 删除

2、hadoop namenode -formate 格式化NameNode
3、 hadoop job -submit 提交作业
hadoo job -kill 杀死作业
4、hadoop fsck -blocks 打印出块信息报告
hadoop fsck -racks 打印DataNode网络拓扑结构


总结本文介绍了HDFS的几个特性,并对其一些关键原理及功能给予解释,最后给出常用的HDFS操作命令。读完本文可以对HDFS有个基本的了解,具体原理细节还是要看书,除此之外就是还有会用Java进行HDFS操作了。





运维网声明 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-19556-1-1.html 上篇帖子: hadoop家族的各个成员 下篇帖子: Hadoop 1.x测试环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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