Hadoop的优化与发展

一、Hadoop的局限与不足

1、Hadoop1.0的核心组件(仅指MapReduce和HDFS,不包括Hadoop生态系统内的Pig、Hive、HBase等其他组件),主要存在以下不足:
(1)、抽象层次低,需人工编码、

  任何一个任务都需要编写Map和Reduce函数,编译、打包、运行来得到结果。即需要做低层次编码。
(2)、表达能力有限

  现实中有些任务无法使用MapReduce架构来处理。
(3)、开发者自己管理作业(Job)之间的依赖关系

  复杂任务需要多个MapReduce作业协同完成。一些MapReduce的输出是另外一些MapReduce的输入,有依赖关系。

  需要开发者资金管理多个MapReduce作业间的依赖关系(作业执行顺序)。
(4)、难以看到程序整体逻辑

  只能通过底层代码来获取整体逻辑,不能通过更高层次获取整体逻辑。
(5)、执行迭代操作效率低--Spark内存计算

  迭代指若干MapReduce完成后,其他MapReduce再继续执行,有输入输出依赖关系。

  每个MapReduce任务的输出都写到HDFS中,后续迭代的MapReduce任务再从HDFS读取文件进行处理。读写HDFS效率低,导致整个MapReduce处理效率低
(6)、资源浪费(Map和Reduce分两阶段执行)

  Reduce必须等到所有Map任务都处理结束才开始运行,Reduce任务前期资源会浪费。
(7)、实时性差(适合批处理,不支持实时交互式)--Spark内存计算

2、Hadoop框架自身的改进:从1.0到2.0

HDFS HA:HDFS High Availablity

3、不断完善的Hadoop生态系统

posted on 2017-07-01 17:21  ostin  阅读(503)  评论(0)    收藏  举报