Hadoop 适用范围

首先我们看一下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的算法。


转载于:https://my.oschina.net/u/2429470/blog/490721

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值