MapReduce不足以完成哪些任务?

时间:2012-08-04 00:26:25

标签: hadoop mapreduce

我想知道是否有任何不适合MapReduce的任务示例。一些具体的例子会很棒。谢谢!

1 个答案:

答案 0 :(得分:2)

其中一些可能是主观的,所以我会尽量坚持最常见的一些:

  • 流数据 - MapReduce本质上是批量的。你在MapReduce中编写的东西时不时地运行,但很难得到它所以它会实时处理数据流。有些项目正在计划解决这个问题,比如Storm。
  • 实时分析 - 同样,MapReduce是批处理的,专为聚合和大规模性能量身定制,而不是快速获得答案。每项工作都需要1-2分钟的开销,因此使用MapReduce获得不到一分钟的响应时间非常具有挑战性。这与Hadoop作为一个软件有很大关系,而不是MapReduce作为范例。
  • 记录抓取 - 就像您无法在短时间内运行分析一样,获取单个记录或小块数据并不容易使用MapReduce。 MapReduce擅长全表扫描,而不是选择一两个记录。这是HBase填补的利基。
  • 大规模重组 - 不确定这是一个什么好的术语,但是任何需要通过网络洗牌的大量数据都可能对您的网络基础架构构成挑战。这是因为这些问题没有充分利用数据局部性。这方面的一些例子是对大型数据集进行总排序和连接。