码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop 适用范围

时间:2015-08-11 16:27:29      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

首先我们看一下Hadoop解决了什么问题。Hadoop就是解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储和处理。

  • HDFS,在由普通PC组成的集群上提供高可靠的文件存储,通过将块保存多个副本的办法解决服务器或硬盘坏掉的问题。

  • MapReduce,通过简单的Mapper和Reducer的抽象提供一个编程模型,可以在一个由几十台上百台的PC组成的不可靠集群上并发地,分布式地处理大量的数据集,而把并发、分布式(如机器间通信)和故障恢复等计算细节隐藏起来。而Mapper和Reducer的抽象,又是各种各样的复杂数据处理都可以分解为的基本元素。这样,复杂的数据处理可以分解为由多个Job(包含一个Mapper和一个Reducer)组成的有向无环图(DAG),然后每个Mapper和Reducer放到Hadoop集群上执行,就可以得出结果。


  • Hadoop的局限和不足 但是,MapRecue存在以下局限,使用起来比较困难。
    • 抽象层次低,需要手工编写代码来完成,使用上难以上手。

    • 只提供两个操作,Map和Reduce,表达力欠缺。

    • 一个Job只有Map和Reduce两个阶段(Phase),复杂的计算需要大量的Job完成,

    • 处理逻辑隐藏在代码细节中,没有整体逻辑

    • 中间结果也放在HDFS文件系统中

    • ReduceTask需要等待所有MapTask都完成后才可以开始

    • 时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够

    • 对于迭代式数据处理性能比较差

    比如说,用MapReduce实现两个表的Join都是一个很有技巧性


    但是基于Hadoop MapReduce这么多的局限性,出现了很多新技术来解决这些问题。比较突出的技术就是Spark.一下做些介绍。

    Apache Spark

    Apache Spark是一个新兴的大数据处理的引擎,主要特点是提供了一个集群的分布式内存抽象,以支持需要工作集的应用。拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。


Hadoop 适用范围

标签:

原文地址:http://my.oschina.net/u/2429470/blog/490721

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!