Hadoop 2.0还存在哪些问题

于2017-03-29由小牛君创建

分享到:



大家都知道hadoop 1.0中存在的问题,比如HDFS中NameNode单点故障,NameNode内存受限制约集群扩展性,MapReduce中的JobTracker单点故障,无法支持多种计算框架等,而在最新发布的hadoop 2.0稳定版hadoop 2.2.0中,这些问题都貌似得到了完美的解决,那么,我们是否可认为hadoop 2.0是一个非常完美的系统,不再存在任何问题了呢?本文尝试回答这个问题。

目前看来,hadoop 2.0仍存在一些没有完全解决的问题,或者新引入的问题,下面是几个典型的代表:

(1)NameNode单点故障解决方案不够完善

HDFS2 允许用户为每个namenode配置一个backup namenode,也就是namenode的热备,这样当主namenode出现问题时,可以立刻切换至backup上,但目前实现仍不是完美的:首先,每个namenode只能有一个backup namenode,不能有多个;其次,主namenode和备backup之间通过一个共享存储系统同步元数据信息,所以这套HA方案本质上仍存在单点问题,也就是这个共享存储系统,比较遗憾的是,共享存储系统只能配置一个,不能有多个,比如只能配置一个NFS目录,不能有多个。

(2)YARN单点故障尚未解决

YARN的引入使得每个应用程序可以有一个独立的追踪器(类似于JobTracker),这样,尽管每个应用程序存在单点问题,但是这个追踪器挂掉后,可以重新启动并恢复之前的运行状态,此外,这种方式不再像Hadoop 1.0那样,作业之间会相互影响(JobTracker挂了后,所有作业不再运行),这种方式可以保证作业之间完全独立。但由于YARN本身也采用了master/slave架构,它的master(ResourceManager)也是单点,且目前尚未解决。

(3)多类框架共享集群有待验证

尽管YARN是一个通用的资源管理系统,且允许多类计算框架运行在它上面,但是,多种框架共享集群的效率和可行性仍有待验证,比如资源利用率是否在可接受范围内,是否存在资源死锁问题(取决于调度策略)等,当然,这些问题本质上都不是问题,因为随着hadoop 2.0的普及,这些问题将会不断地被解决。

以上介绍的这几个仅仅是hadoop 2.0中存在的比较重要的问题,在其他细节之处,hadoop 2.0仍存在很多尚需完善的地方,在此不再一一介绍。