`

HDFS的缺点及改进策略

阅读更多
HDFS是一个不错的分布式文件系统,它有很多的优点,但也存在有一些缺点。目前而言,它在以下几个方面就效率不佳:
  低延时访问
  HDFS不太适合于那些要求低延时(数十毫秒)访问的应用程序,因为HDFS是设计用于大吞吐量数据的,这是以一定延时为代价的。HDFS是单Master的,所有的对文件的请求都要经过它,当请求多时,肯定会有延时。当前,对于那些有低延时要求的应用程序,HBase是一个更好的选择。现在HBase的版本是0.20,相对于以前的版本,在性能上有了很大的提升,它的口号就是goes real time。
  使用缓存或多master设计可以降低client的数据请求压力,以减少延时。还有就是对HDFS系统内部的修改,这就得权衡大吞吐量与低延时了,HDFS不是万能的银弹。
  大量小文件
  因为Namenode把文件系统的元数据放置在内存中,所以文件系统所能容纳的文件数目是由Namenode的内存大小来决定。一般来说,每一个文件、文件夹和Block需要占据150字节左右的空间,所以,如果你有100万个文件,每一个占据一个Block,你就至少需要300MB内存。当前来说,数百万的文件还是可行的,当扩展到数十亿时,对于当前的硬件水平来说就没法实现了。还有一个问题就是,因为Map task的数量是由splits来决定的,所以用MR处理大量的小文件时,就会产生过多的Map task,线程管理开销将会增加作业时间。举个例子,处理10000M的文件,若每个split为1M,那就会有10000个Map tasks,会有很大的线程开销;若每个split为100M,则只有100个Map tasks,每个Map task将会有更多的事情做,而线程的管理开销也将减小很多。
  要想让HDFS能处理好小文件,有不少方法:
  1、利用SequenceFile、MapFile、Har等方式归档小文件,这个方法的原理就是把小文件归档起来管理,HBase就是基于此的。对于这种方法,如果想找回原来的小文件内容,那就必须得知道与归档文件的映射关系。
  2、横向扩展,一个Hadoop集群能管理的小文件有限,那就把几个Hadoop集群拖在一个虚拟服务器后面,形成一个大的Hadoop集群。google也是这么干过的。
  3、多Master设计,这个作用显而易见了。正在研发中的GFS II也要改为分布式多Master设计,还支持Master的Failover,而且Block大小改为1M,有意要调优处理小文件啊。
附带个Alibaba DFS的设计,也是多Master设计,它把Metadata的映射存储和管理分开了,由多个Metadata存储节点和一个查询Master节点组成。
  Alibaba DFS(目前下载不了,加群60534259吧(Hadoop技术交流),群共享里有下 :))
  多用户写,任意文件修改
  目前Hadoop只支持单用户写,不支持并发多用户写。可以使用Append操作在文件的末尾添加数据,但不支持在文件的任意位置进行修改。这些特性可能会在将来的版本中加入,但是这些特性的加入将会降低Hadoop的效率,就拿GFS来说吧,这篇文章里就说了google自己的人都用着Multiple Writers很不爽。
  利用Chubby、ZooKeeper之类的分布式协调服务来解决一致性问题。

原文链接:http://www.cnblogs.com/spork/archive/2009/12/29/1634737.ht
分享到:
评论

相关推荐

    HDFS应用场景、原理、基本架构及使用方法

    2. **适合批处理**:为了提高效率,HDFS采取“移动计算而非数据”的策略,即将计算任务调度到数据所在的位置执行,而不是将大量数据复制到计算节点。同时,HDFS会向计算框架暴露数据的位置信息,便于高效地进行...

    基于分布式文件系统的教育教学资源平台.pdf

    6. HDFS的挑战及优化:文章指出了HDFS在处理小文件时存在性能瓶颈,提出了通过优化读写性能和增加缓存策略来改进HDFS对小文件处理能力的建议。这些改进有助于提升HDFS在存储教育数字资源方面的性能。 7. 分布式文件...

    大数据复习题4.0版.docx

    【简单哈希的缺点与改进】 简单哈希数据寻址的缺点在于节点数目的变化可能导致存储位置的剧烈变化。为此,可以采用一致性哈希或约会哈希等改进方法,以减少节点增减带来的影响。 【一致性哈希】 一致性哈希是一种...

    基于Hadoop平台的亿贝用户邮件数据分析(苏立)

    同时,生成详细的分析报告,解释发现的关键趋势和模式,对于业务改进至关重要。 综上所述,《基于Hadoop平台的亿贝用户邮件数据分析》一书深入浅出地讲解了如何运用Hadoop技术解决大数据问题,特别是对于电子商务...

    hadoop平台性能研究

    2. **HDFS的局限性**:HDFS虽然被证明在搜索引擎应用中表现优异,但由于其最初的设计目的是为了支持搜索引擎类应用,因此对于其他类型的应用可能存在一定的局限性,比如在数据访问模式上可能无法很好地适应。...

    基于分布式计算的3D+SLAM研究1

    针对SLAM的集中式架构缺点,提出了基于分布式文件系统(如HDFS)的SLAM架构。这种分布式架构能够分摊计算负担,提高建图效率,并增强系统的容错能力。 在移动机器人导航方面,建立了移动机器人的动力学模型,深入...

    Hadoop课程笔记1

    大数据,这个现代信息技术领域中的核心概念,指的是那些无法通过传统软件工具在合理时间内捕获、管理及处理的大量数据集合。这些数据具有海量性、高速增长性和多样性,需要新的处理模式来提升决策效能、洞察发现能力...

    行业分类-设备装置-一种基于云计算平台的大数据聚类方法和装置.zip

    文件“一种基于云计算平台的大数据聚类方法和装置.pdf”很可能是详细介绍这个具体聚类方法的技术报告或研究论文,包含实现细节、性能评估以及可能的改进方案。 总之,这个主题深入探讨了在云计算环境中利用聚类算法...

    亿级大数据实时分析平台.pptx

    小米的大数据应用场景广泛,如广告营销的点击预估、人群画像、营销DMP和精准营销,以及互联网金融的精细化运营、防黄牛策略、图片分析处理等。在数据分析流程中,通常包括数据收集(JS、SDK和Server-to-Server等)、...

    HIVE资料.zip

    4. **数据倾斜(Data Skew)**:当数据在各个节点分布不均时,可能会导致某些节点负载过高,Hive提供了一些策略来解决这个问题,比如使用哈希分区。 5. **MapReduce**:Hive的执行引擎默认是基于MapReduce的,它将...

    大数据时代的存储系统若干变化的思考.pdf

    这包括但不限于存储介质的选择、存储架构的优化、数据管理和保护策略的改进,以及与计算、通信等其他系统的协同。在这个过程中,解决方案的设计者需要综合考虑性能、成本、能耗和可靠性等多个维度,以构建适应大数据...

    数据挖掘经典教材 Mining of Massive Datasets

    - 分布式文件系统(如Hadoop HDFS)的基础原理及其实现。 - MapReduce框架的设计理念与实现机制,以及如何利用MapReduce来开发并行算法以处理非常大量的数据。 - 通过具体案例分析MapReduce在实际应用场景中的...

    本科毕业论文参考题目

    - **网络安全技术**:了解网络攻击类型(如DDoS攻击、中间人攻击等)及防御策略;研究加密算法(如AES、RSA等)在保障数据传输安全中的应用。 - **身份认证机制**:探讨轻量级认证协议(如EAP-TLS、OAuth 2.0等)...

    云上HBase冷热分离实践.pdf.pdf

    此外,为了更好地适配OSS的特性和优化数据传输过程,云HBase还实现了一系列定制化的改进措施,比如通过特殊的元数据操作来保证数据的一致性和原子性。 #### 五、案例分析 以某汽车企业的实际应用场景为例,该企业...

    大数据环境下基于反馈的敏感数据识别方法研究与实现.pdf

    一种方法是利用DPI技术结合Hive获取元数据表结构等元数据,来明确当前存储在HDFS上的文件及存储路径,并根据语义内容进行敏感信息识别。这种技术可以精确地识别出数据分组中的应用层信息,并在必要时更新特征库,...

    zvchat.zip_php文件存储聊天室_zvchat_即时通讯_聊天

    本文将深入探讨ZvChat的设计原理、实现方式以及其在实际应用中的优缺点。 一、文件存储的优势与挑战 1. 优势: - 简单快速:相比数据库存储,文件存储避免了复杂的SQL查询,部署和配置相对简单。 - 成本低:对于...

    apache-hive-1.2.1

    - 根据业务需求选择合适的存储格式,如TextFile、ORC、Parquet等,每种格式都有其优缺点。 - 考虑数据分区和桶化,以提高查询性能。 - 使用适当的查询优化策略,如避免全表扫描,利用索引等。 - 定期维护和优化Hive...

    2011百度笔试题

    ### 技术类笔试知识点解析 ...- **改进**:提出需要改进的地方。 #### 40. 归档日志与非归档日志 - **归档日志**:记录所有修改操作,用于数据恢复。 - **非归档日志**:不保存历史更改记录,无法进行完整恢复。

    大数据面试常见问题.docx

    大数据面试常见问题涉及了多个领域的知识点,包括数据处理能力、数据分析项目、统计概念、数据挖掘技术、网络爬虫优化、数据质量控制、实时处理需求、数据建模与评估、编程语言选择、数据库设计以及营销策略优化等。...

Global site tag (gtag.js) - Google Analytics