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

[经验分享] Hadoop分布式文件系统HDFS

[复制链接]

尚未签到

发表于 2015-7-14 07:54:15 | 显示全部楼层 |阅读模式
分布式文件系统
  当数据集的大小超过一台独立物理计算机的存储能力时,就有必要对它进行分区存储到若干台单独的计算机上。管理网络中跨多台计算机的文件系统成为分布式文件系统。分布式文件系统构建与网络上,势必会引入网络编程的复杂性。因此,分布式文件系统通常比普通文件系统更为复杂。
HDFS
  HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。
超大文件
  “超大文件”指有几百MB、几百GB甚至几百TB大小的文件。目前已经有存储PB级数据的Hadoop集群。
流式数据访问
  HDFS的构建思路是这样的:一次写入,多次读取是最高效的访问模式。数据集通常由数据源生成或从数据源复制而来,接着长时间在此数据集上进行各类分析。每次分析都将涉及该数据集的大部分数据甚至全部,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要。
商用硬件
  Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计运行在商用硬件(在各种零售店都能买到的普通硬件)的集群上。因此,至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户觉察到的中断。
  
不适合使用HDFS的场景
低时间延迟的数据访问
  要求低时延数据访问的应用,例如几十毫秒范围,不适合在HDFS上运行。HDFS是为高数据吞吐量优化的,这可能会以高时间延迟为代价。
大量的小文件
  由于namenode就爱那个文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此举例来说,如果有一百万个文件,且每个文件占一个数据块,至少需要300M内存。存储数十亿个文件就超出当前硬件的能力。
多用户写入,任意修改文件
  HDFS中的文件可能只有一个writer,而且写操作总是将数据添加在文件的末尾。它不支持具有多个写入者的操作,也不支持在文件的任意位置进行修改。
  
HDFS相关概念
数据块
  每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位。构建与单个磁盘上的文件系统通过磁盘块来管理该文件系统的块,该文件系统的大小可以是磁盘块的整数倍。文件系统块一般为几千字节,而磁盘块一般为512字节。这些信息--文件系统块大小--对于需要读/写文件的文件系统用户来说是透明的。尽管如此,系统仍然提供了一些工具(df和fsck)来维护文件系统,他们对文件系统中的块进行操作。
  HDFS同样有块的概念,但是HDFS的块要大得多,默认为64MB。与单一磁盘上的文件系统相似,HDFS上的文件也被划分为块大小的多个分块(chunk),作为独立的存储单元。但与其他文件系统不同的是,HDFS中小与一个块大小的文件不会占据整个块的空间。
  
为何HDFS中的块如此之大? HDFS的块比磁盘大,其目的是为了最小化寻址开销。如果块设置的足够大,从磁盘传输数据的时间可以明显大于定位这个块开始位置需要的时间。这样传输一个多个块组成的文件的时间取决于磁盘的传输速率。
但是,参数也不能设置的太大,MapReduce中的map任务通常一次处理一个块中的数据,因此如果任务数太少(少于集群中的节点数量),作业的运行速度就会比较慢。
  对分布式文件系统中的块进行抽象会带来很多好处。第一个最明显的好处是,一个文件的大小可以大于网络中任意一个磁盘的容量。文件的所有块并不需存储在同一个磁盘上。因此可以利用集群上的任意磁盘进行存储。 使用块而不是单个文件进行存储和抽象第二个好处是大大简化了存储子系统的设计。将存储子系统的基本单位设置为块,大大简化了存储系统的管理(块的大小固定,每个磁盘能够存储多少个块是显而易见的)。由于元数据并不需要和块一块存储,消除了元数据存储的顾虑。
  
  
   参考文献 《Hadoop权威指南》

运维网声明 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-86355-1-1.html 上篇帖子: hadoop-1.1.2 在Windows环境下的部署 下篇帖子: hadoop集群环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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