`
datamachine
  • 浏览: 157427 次
社区版块
存档分类
最新评论

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐

    Hadoop集群中影响应用性能的因素分析

    另外,两类数据集在小规模集群(1个Slave)上的执行效率大约均是大规模集群(10个Slave)下的2倍.故此,在Hadoop集群环境中为了提高应用性能,应通过增大数据块等方法来减少map任务数,而不应盲目增大集群规模.该结论可对...

    大数据hadoop视频教程

    Hadoop MapReduce:一种分布式计算模型,用于将大规模数据集分解为多个小任务,并在集群中并行处理这些任务。 除了核心组件外,Hadoop生态系统还包括许多其他工具和组件,如Hive、Pig、Spark等,用于数据查询、数据...

    论文研究-Hadoop云平台MapReduce模型优化研究.pdf

    并在由四个节点组成的Hadoop集群环境下对不同规模大小的出租车GPS轨迹数据分析处理,验证该模型的性能和效率,实验结果证明MapReduce OpenMP分布式并行计算模型确实能够提高针对大数据集的计算效率,是对Hadoop平台...

    大数据与Hadoop.doc

    大数据与Hadoop 作者:朱立 来源:《中国科技纵横》2016年第02期 【摘 要】大数据技术正在向各行各业渗透。Hadoop作为数据分布式处理系统... 可扩展性:Hadoop可以在不停止集群服务的情况下,在可用的计算机集簇间分 配

    完整图文版 阿里巴巴数据产品平台 大数据与云计算技术系列教程 Hadoop之Hive学习笔记(共63页).pdf

    当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。 8. 可扩展性。由于 Hive 是建立在 Hadoop 之上的,因此 Hive 的可扩展性是和 Hadoop 的可...

    Mapreduce#文档.docx

    可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。 Reduce 负责“合”,即对 map 阶段的结果进行全局汇总。 这两个阶段合起来正是 MapReduce 思想的体现。 图:MapReduce 思想模型 还有一...

    论文研究-基于MapReduce的并行PLS过程监控算法实现.pdf

    在三台PC上搭建三个节点的Hadoop全分布集群平台上,以田纳西-伊斯曼过程仿真平台数据回归分析为例,验证所提出的算法。实验结果表明,在使用PLS做现代大规模工业过程数据分析时,所提出的算法在保证精度的前提下,能...

    kafka 内部培训资料

    Apache Kafka 内部培训资料 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。...Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

    hadoopMapReduce实例解析

    MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的...在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问

    37篇经过消化云计算论文打包下载

    经过测试发现EC2云计算系统是一个可靠的解决方案,支持按需响应,小规模,高性能计算应用程序。 2、 Chukwa: A large-scale monitoring system Chukwa是建立在Hadoop上的数据收集系统,用以监控和分析大规模的...

    37篇经过消化的云计算论文

    经过测试发现EC2云计算系统是一个可靠的解决方案,支持按需响应,小规模,高性能计算应用程序。 2、 Chukwa: A large-scale monitoring system Chukwa是建立在Hadoop上的数据收集系统,用以监控和分析大规模的...

Global site tag (gtag.js) - Google Analytics