在实际生产环境中,Hadoop的版本选择是在设计系统架构之时很重要的一个考虑因素。Hadoop版本主要分为社区版和商用版:
- 社区版Hadoop:Apache发布的一款支持数据密集型分布式应用并以Apache2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序;
- 商用版Hadoop:第三方公司在社区版Hadoop基础上进行了一些修改、整合以及各个服务组件兼容性测试;
社区版Hadoop存在以下缺点:
- 复杂的版本管理,版本管理比较混乱,各种版本层出不穷,在使用的时候难以选择一个恰当的版本;
- 复杂的生态环境,在Hadoop生态圈中,服务组件的选择、使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等等,需要大量考虑兼容性的问题,版本是否兼容,组件是否有冲突,编译是否能通过等,经常会浪费大量的时间去编译组件,解决版本冲突问题,致使开发人员无法将更多的精力放在业务处理上。
- 复杂的集群部署、安装、配置。选用社区版Hadoop搭建集群需要编写大量的配置文件,手动分发到每一台节点上,容易出错,效率低下;
- 复杂的集群运维,对集群的监控,运维,需要安装第三方的其他软件,如ganglia,nagois等,对维护人员要求较高,运维难度较大;