Gartner:如何选择正确的Hadoop版本算法
这份报告的全名是《How to Choose the Right Apache Hadoop Distribution》。主要介绍了企业如何引入Hadoop,其中一些内容很好,值得一看。数据库
在文中Gartner分析了Hadoop的由来,而且指出,目前开源项目的方式为使用Apache Hadoop带来了挑战,由于其中的内容都是不少厂家贡献出来的,成熟度不同,甚至一些中包含了很个性化的代码,这些代码可能只对某些厂家特殊的业务环境有效。安全
为此Gartner郑重地建议即便开源的版本是免费的,也最好从一个成熟的合做伙伴那里获取一份商业开源的版原本确保对Hadoop的支持。架构
而后Gartner介绍了以下几个提供商业版本Hadoop的厂商:机器学习
Cloudera:第一个提供商业版本的;已经在Oracle的Big Data一体机,NetApp的Open Solution for Hadoop,Dell的Cloudera Hadoop Solution和SGI的Optimized Hadoop Solution中使用,NTT在亚太地区开始支持这个版本的销售。ide
MapR: 增长了高可用、快照、镜像、经过NFS访问数据、控制系统、管理套件。跟EMC合做销售。跟LUCENE进行合做。工具
IBM’s InfoSphere BigInsights: 当前版本为1.3,在其中打包了文本分析、用于数据探索的BigSheets、开发工具。IBM扩展了M\R和灵活的调度器。并提供了一个HDFS的替代方案(GPFS),提供了企业级的安全,提供了一个基于WEB的管理界面,提供了高速数据链接器。oop
Hortonworks:包括了最多的组件,下一代的M\R和HDFS。跟微软合做,放在Azure中。学习
EMC GreenPlum HD:Greenplum MR基于MapR的M5版本。提供Greenplum Data Computing Appliance,能够跟Greenplum Database和Greenplum Data Integration Accelerator模块整合在一个集群中。1月EMC发布的Isilon储存能够添加对HDFS的天然支持,能够加强高可用和数据共享的能力。开发工具
DataStax:提供实时交互和事务分析能力(经过Apache Cassandra而不是HDFS来实现),因此是一个混合负载环境的备选方案。提供内建的容错能力。目标是消灭ETL,经过NOSQL来替代RDBMS。
其余的DBMS厂家提供了一些到Hadoop的链接器,从而将数据引入到他们的数据库中,或者将数据库中的数据导出。Teradata Aster和EMC Greenplum能够调用MR。还有一些开始提供Hadoop的版本,好比ORACLE。
对于许可证模式,Hadoop比较复杂,有的部分采用Apache的许可证模式,有的则采用本身的模式。
对于Hadoop中的组件,Gartner也作了一些描述:
Apache Hadoop和MapReduce,这个就不用介绍了,太熟悉了,是通用的组件。
Apache HDFS,也不说了
Apache Pig,提供Pig Latin的查询语言,以及一个编译器将查询语言转换为MR程序执行
Apache Hive,提供HiveQL查询语言,而后转换为MR程序执行。使得能够想数据仓库同样被查询,也能够在语言中嵌入MR代码。
Jaql,跟前二者类似,不过是IBM本身的,不是Apache中包含的。能够查询结构化和非结构化数据。为使用JSON来设计。最终编译为MR程序执行。
Apache HBase,是列的NoSQL数据库,构建在HDFS上,提供随机读和写。
Apache Cassandra,列、点对点模式的NoSQL数据库,内建复制机制,为普遍的高可用和云支持设计,容许事务和分析负载同时承载。DataStax将其做为HDFS的替代。
Apache ZooKeeper,提供中央的控制信息和同步。一般为Hbase提供节点见的协调。
Apache Flume,孵化中的项目,由Cloudera提供,用于收集来自多个数据源的日志,并将它输入到中央的数据存储中,好比HDFS。
Apache Oozie,孵化中的项目,由Yahoo提供,用于工做流、调度和协调。
Apache Mahout,用于机器学习,是一个数据挖掘算法的库,包括分群、分类和过滤等。
Apache Sqoop,孵化中的项目,由Cloudera提供,提供在RDBMS和Hadoop中的批量数据传输。
Apache Whirr,一组为了运行云服务而设计的代码库,好比能够用来在AWS上部署ZooKeeper
Apache Avro,被IBM和Cloudera使用,用于数据串行化,也就是将数据转换为紧密的二进制格式(JSON)在Hadoop上存储和使用。
Hue,包括在Cloudera中,提供一个基于WEB的Job Tracker,集群监控和文件浏览。IBM在本身的BigInsights管理台中提供了这个功能。
Cascading,包括在MarR中,定义了不依赖于M\R代码的复杂工做流,底层运行在Hadoop的MR上,一般跟Hbase一块儿提供。非Apache项目
Apache Lucene,一个文本搜索引擎
Apache Hcatalog,孵化项目,由Hortonworks提供,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图
Apache Ambari,提供Hadoop集群的监控、管理和生命周期管理
接着Gartner分析了两种策略,本身创建Hadoop的软件栈和选择一个有支持的商业版本。最终结论是大部分的公司都应该选择后者,除非是像大型互联网公司这种将Hadoop视为核心和长期演进的才应该选择前者。
个人想法:若是选择商业版本的,那么对于之后的标准化有没有影响呢?每次Hadoop底层模块升级或不会涉及上层应用代码的改变啊?若是不被厂商绑定呢?
FORRESTER的企业Hadoop最佳实践
这份报告的全名为《Enterprise Hadoop Best Practices:Concrete Guidelines From Early Adopters In Online Services》。
一开始文中分析了Hadoop的弱点,以及如今EDW在支持Hadoop方面的缺陷。接着他提出了几个最佳实践:
1、用Hadoop来解决大数据的问题
2、将Hadoop和企业的EDW架构进行整合。并提出最好不要创建多个Hadoop环境的竖井来处理多种应用,不要将Hadoop架构仅仅构建在一种存储上(建议用HDFS和NoSQL数据库的混合,也有RDBMS。)
3、采用成熟的企业级Hadoop和工具,建议评估商业版本,进行POC测试,并考察厂商的财务稳定性、策略方向、服务支持、合做环境等。最好问问EDW是否有这样的产品提供或者提供对这样的产品的支持
4、创建一个Hadoop卓越中心来培养技能,保持跟Hadoop社区的联系,引入咨询,雇佣专家。