资讯专栏INFORMATION COLUMN

Hadoop中小规模集群的并行计算缺陷

MiracleWong / 3456人阅读

摘要:为了使大集群高效地利用资源应对不可靠的计算环境稳定有效地执行计算任务,的架构被设计的非常复杂。中小集群用户无法改变的底层架构设计,因此常会感觉的管理成本太高。

注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展 的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的较大效用为上策。

--------------------------------------------------------------------------------------

    Hadoop在实际使用中,很多用户会发现Hadoop性能较差、结构复杂、开发困难,并不如想像中的那么好。这是因为Hadoop的并行计算框架是重量 级的MapReduce,其设计目标是支持几百或上千台的大集群,为了有效地利用大集群的资源和保证容错性,MapReduce的体系结构设计得很复杂, 而大多数用户的数据规模是十几台、几十台的中小集群,在这种环境中应用Hadoop会带来很多不便,无法体会Hadoop的优势也就可以理解。

    任务拆分过碎,调度成本过高。集群计算会有一定的故障率,比如网络故障或节点机的故障,出了故障就需 要重新计算,就会重新消耗资源。因此每台节点机上的任务越小,重复计算所消耗的资源就会越小。但将大任务拆分为小任务本身也需要消耗资源,拆分得越多越 小,调度的成本也就越高,实时性也就越差。这是天平的两头,不可兼顾。

    MapReduce是为大集群所设计的,大集群的故障率会非常高,而调度成本就显得不那么重要了。因此MapReduce被设计为一次处理尽量少的数据, 默认是一条。假如有几十亿条数据,那这些数据就会被拆分成几十亿条,每个节点机分配一条。但是中小集群用户的节点少,发生故障的概率很低,往往能正常运行 很久,他们更希望可以自由定制任务的拆分规模,比如把一亿条数据分成一百份,每个节点处理一百万条,从而降低调度成本。

    MapReduce难以提供这种灵活自由的任务拆分手段,因此中小集群用户会感觉Hadoop的实时性较差。

    用文件交换数据,性能低。计算中的节点故障可以用细分任务的办法解决,但如果节点计算后、在向汇总机 提交结果前发生故障怎么办?MapReduce的办法很简单:写入HDFS,用文件来交换数据,这种做法明,显不如将内存中的数据直接发回节点机快,但在 高故障率的大集群环境下,这种做法就相当有效了。

    中小集群用户的故障率很低,他们更希望灵活的数据交换方式:大部分情况下直接交换,确有必要的时候再用文件交换,这样可以大大减少数据交换的时间。

    MapReduce无法提供这种灵活的数据交换方式,因此中小集群用户会感觉Hadoop的性能较差。

    架构复杂,管理成本高。为了使大集群高效地利用资源、应对不可靠的计算环境、稳定有效地执行计算任 务,MapReduce的架构被设计的非常复杂。这种复杂在几百,几千台的集群环境中是非常有必要的。但这也带来了部署的复杂性,不仅维护和管理的工作量 大,学习难度和开发难度也大大提高,而且复杂的结构会导致整体的性能下降,各种组件出现错误的概率增多,错误排查困难,也束缚了用户的自由度,使开发成本 变大。例如,MapRreduce默认是一次处理一条数据,但经过改写后也可以一次处理多条数据,只是这种改写比较困难,需要较高的技术能力和较多的开发 时间。

    中小集群用户的节点机少,机器类型没有那么多样,计算环境也比较可靠,因此不需要如此复杂的架构就能保证计算任务稳定有效的执行。他们更希望MapRreduce的架构简单些,这样才能降低管理成本低,提高运算效率高。

    中小集群用户无法改变MapReduce的底层架构设计,因此常会感觉Hadoop的管理成本太高。  

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3852.html

相关文章

  • 用集算器实现Hadoop内存计算

    摘要:利用集算器这种既支持外存计算也支持内存计算的并行计算框架,中小集群用户能够获得更高的性能。宋体下面用一个典型的分组计算的例子来说明集算器是如何实现内存计算的。     Hadoop运算效率不高是个不争的事实,这主要是由于Hadoop是使用MapReduce作为底层计算框架的,而MapReduce基本都是外存计 算。外存计算就需要通过频繁读写外存文件来实现计算和数据的交换,由于文件IO的...

    APICloud 评论0 收藏0
  • 想学大数据?大数据处理开源框架推荐

    摘要:大数据通常是不确定的,而多数处理框架已经适应了这一特性。正如其名,大数据通常以其大量的数据为特征,而这要求巨大乃至理论上无限的存储容量。栈是大数据处理框架的祖师爷,并且已经成为这些技术汇集的事实上的平台。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文讨论大数据处理生态系统和相关的架构栈,包括对适应于不同任务的多种框架特性的调研。除此之外,文章还从多个层次对框架进行...

    ralap 评论0 收藏0
  • 360度透视Hadoop,大数据技术、案例及相关应用

    摘要:来自社区的大数据宣言为公司提供有效的业务分析工具和技术是首席信息官的首要任务。我们称这些为大数据。大数据性质的变化移动设备和其他技术的出现导致数据性质的根本性变化。因此,需要处理和分析大数据的新方法。 来自Wikibon社区的大数据宣言为公司提供有效的业务分析工具和技术是首席信息官的首要任务。有效的业务分析(从基本报告到高级的数据挖掘和预测分析)使得数据分析人员和业务人员都可以从数据中获得见...

    rottengeek 评论0 收藏0
  • 什么是大数据

    一、什么是大数据进入本世纪以来,尤其是2010年之后,随着互联网特别是移动互联网的发展,数据的增长呈爆炸趋势,已经很难估计全世界的电子设备中存储的数据到底有多少,描述数据系统的数据量的计量单位从MB(1MB大约等于一百万字节)、GB(1024MB)、TB(1024GB),一直向上攀升,目前,PB(等于1024TB)级的数据系统已经很常见,随着移动个人数据、社交网站、科学计算、证券交易、网站日志、传...

    learn_shifeng 评论0 收藏0
  • Hadoop框架与MapReduce模式中谈海量数据处理

    摘要:由此,最近凡是空闲时,便在看,海量数据处理这方面的论文。本文从最基本的模式,框架开始谈起,然后由各自的架构引申开来,谈到海量数据处理,最后谈谈淘宝的海量数据产品技术架构,以为了兼备浅出与深入之效,最终,希望得到读者的喜欢与支持。     几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣, 在看过介...

    Shisui 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<