apache hadoop 是一个免费软件,但实际上,除非是拥有庞大工程师团队的大公司,否则最好不要去创建仅供内部使用的hadoop版本,因为如果要购买技术支持,那 hadoop 就不是免费的了。jim scott 是 mapr 企业战略&架构部门的负责人。2009年,他接触了自己的第一个 hadoop 版本 cloudera。他发现,apache hadoop 平台存在一些固有的设计缺陷。近日,他从以下几个方面分析了这些缺陷,并介绍了 mapr 的解决方案。
hdfs 的 append-only 文件访问方式是一个巨大的障碍,导致下游项目不得不解决这个问题。例如,hbase 就实现了“墓碑化(tombstoning)”和“合并(compactions)”功能。但是,如果这些动作发生在负载高峰期,会严重影响生产系统的性能。mapr 通过创建 mapr-db 解决了该问题。mapr-db 模仿了谷歌的 bigtable,支持 hbase api,是一个零管理实时数据库。
hdfs 不兼容 posix 和 nfs。要查看 hdfs 中的文件,只能通过 hdfs 命令行接口来查询。mapr-fs 是一个操作系统级的文件系统,兼容 posix。查看该分布式文件系统中的文件,只需要使用 ls 命令。编辑其中的文件,也不需要专门的工具。linux 中任何可以读写 nfs 系统的应用程序都可以读写 mapr-fs。
apache hadoop 在灾难恢复和备份方面存在严重不足。hadoop 的数据复制可以有效应对磁盘故障,但对数据损坏和人为错误无能为力。谨慎起见,在向生产环境部署新软件之前,需要生成一个数据快照。但是,apache hadoop 的快照只是一个元数据副本。而 mapr 快照则近乎是数据的瞬时拷贝,即使文件正在被写入也可以生成。并且,用户还可以生成 mapr-db 表的快照。
任何优秀的企业应用程序都离不开维护、管理和升级,hadoop 也不例外。但 hadoop 的升级维护可能会非常麻烦。mapr 每次发布都会针对许多开源软件项目的多个版本进行测试。它是唯一一个支持在同一个集群上运行软件的不同版本的 hadoop 版本。
在使用 hadoop 的时候,相关开源软件的选择是个难题。mapr 支持开放式 api,提供了一个无偏见的 hadoop 开源软件集合,使用户能够选择自己需要的开源项目。
此外,jim 还提到,namenode 是个单点故障点。感兴趣的读者可以进一步阅读。
对 mapr 感兴趣的读者,可以下载 mapr m3 社区版本,免费体验 mapr 的性能。