Hortonworks公司,由Yahoo和Benchmark Capital于2011年7月联合创建。在激烈的市场环境中,与其他竞争者相比Hortonworks有着自己的优势。出身于名门Yahoo,Hortonworks拥有着许多Hadoop架 构师和源代码贡献者,这些源代码贡献者以前均效力于Yahoo,而且已经为Apache Hadoop项目贡献了超过80%的源代码,Hortonworks这样说道。这些工程师同时也为分布式领域的一些其他项目(如HCatalog、 Ambari和Pig等)做出了贡献,此外,在Yahoo还都曾参与过在4万台服务器规模集群中运行Hadoop的经验。
Hortonworks是如何帮助企业采用Hadoop的?Hortonworks的CTO Eric谈到了三个步骤:
- 了解需求,这和别的供应商是一样的;
- 和大家不一样的是,Hortonworks会通过广泛的Apache Hadoop社区的力量来根据客户需求开发新软件;
- 在开发完成了之后,需要将软件进行打包,然后进行企业级测试,保证可用性和稳定性
Hortonworks提供的企业级Hadoop是什么样子的呢?请看下图。
除了在底层拥有Hadoop的核心之外,他们在上层加入了FLUME和SQOOP,用于将数据注入Hadoop中。其次,又添加了Hive、PIG、 HABASE、HCATALOG来简化Hadoop中的数据管理。最后也添加了一些Apache Hadoop项目,AMBARI和OOZIE,用于管理和监控集群,管理和监控任务和工作流。这样就能形成一个纯开源,纯Apache的平台。
接着,他分享了一些他觉得在现在的Apache版本中比较激动人心的一些项目。
第 一个就是HCatalog。它是HIVE在表级别上的抽象,这就意味着表级别就开放了,所有的数据工具和Hadoop都能在这个更高层级的抽象上开展工 作。可以对表编写Map-Reduce,用PIG来做ETL,用HIVE格式来存储,所以它是可以在这些工具之间进行协作的。除此之外,它的开放性也支持 通过集群外来访问。所以,现在就可以用第三方的SQL工具,通过表查询的方法来查询其中的数据,这样就把Hadoop带到了更多的使用场景中。
第二个就是Ambari。它是Apache的孵化项目,主要关注于Hadoop的配置、管理和监控。他自己的团队在过去的一年中感觉到的是,企业不需要一个 单独管理Hadoop的终端,企业希望能够把Hadoop的管理工作集成至自己喜欢的工具中。所以Ambari非常注重添加API。Ambari添加的 API即可被现有的管理工具集成。另一个亮点是Ambari有任务诊断功能,用户可以直接诊断Hadoop中的任务为什么性能低,为什么会失败,等等。通 过集群历史(Cluster Histroy),可以直观地了解到集群的运行情况,从而判断目前集群的状态。
接下来,他谈到了Hadoop 2.0中几个比较重大的改进。
第 一是在可扩展性上要做得更好。今天大概最大的集群的量级在4000~4500个节点左右,2.0的目标是要支持万级的节点数量。企业可以信赖Hadoop 因为它可以持续提供不断成长的数据管理架构。Eric也谈到他对大数据的定义是,企业有了大数据的问题,现有的工具根本不能解决,或不能通过低成本的方式 去解决。所以Hadoop也需要不断提升,从而保持住大数据最佳解决方案的地位。
除了可扩展性之外,Hadoop 20.0真正的关注点在其延展性上。这正是采用YARN的原因。YARN是Hadoop的重构和处理模型。在Hadoop 1.0中,只有一种语言,就是MapReduce。在Hadoop 2.0中,核心资源管理被分离出来,可以将集群中的某部分资源分配于某些非MapReduce的特定工作。所以MapReduce就成为了众多可以在 Hadoop中使用的编程模型之一。除了MapReduce之外,大家还能看见很多其他的框架,有的已经可用了。例如处理流的低延迟性框架,支持SQL查 询的,还有其它的一些服务性框架,例如有人提议将CloudFoundary作为Hadoop的一个服务。这样的话,就能利用Hadoop进行更开放地创 新。
Tez是其中的一个框架,它是Apache的孵化项目,主要是为了在Hadoop 2.0中提供低延迟性的编程框架。Tez分成两个部分,第一个部分关注内循环上,也就是如何更高效地处理大量数据行的访问;第二部分是关注如何能够更快地 开始进行计算,如何保证集群的热度(warm)和可用性,以确保在提交查询后几秒钟就开始处理,而不是几分钟或者几十秒。
Tez 是一项大的倡议当中的一部分,即Stinger。可能大家没见过Stinger Apache,因为Stinger是一项大的倡议,旨在集中社区的力量来将Hive变得更优秀。主要的关注点是如何实现Hadoop中的低延迟SQL查 询。之前的事实已经证明了Hive的优异,比如可扩展性,和高强度负载下的稳定性,功能也很完整。Stinger中把对Hive的改进分解成了三个方面。 第一个方面已经谈到过,就是Tez。第二方面是对核心Hive的改进,即提供更好的查询计划。例如通过更少的任务,更快地完成查询。第三方面是要提供更优 化的列存储格式。这三方面结合起来,Hive的性能可能会得到成百倍地增强。
Knox也是Apache的孵化项目,专注于Hadoop的安全性。Knox Gateway通过在Hadoop集群之前的REST代理,可以使用现有工具来提供单点登录,然后就可以使用Hadoop了。
Falcon是数据生命周期管理的项目。第一是解决了数据生命周期管理的问题;第二也提供了移动数据的问题,即如何将数据移送至集群中,并在集群间移动;其它还包括如何自动化ETL流。