Hortonworks数据平台(HDP)2.2版及其上百的新特性,包括了对基于YARN的新引擎的垂直整合,以及对诸如管理,安全和运营这些企业服务的水平整合,代表了Hadoop最新的的创新。
Hadoop的的核心是YARN这个集群资源管理平台,它使能了那些处理引擎,比如规模处理企业级SQL时使用Apache Hive(蜂巢),处理实时数据时使用Apache Storm(风暴),进行迭代处理时使用Apachespark(火花),发布 - 订阅消息时使用Apache Kafka(卡夫卡)等等。
HDP2.2早先发布的beta版本得到了业内的广泛支持,并且将很快GA(GUARANTEED ACCESS)。目前可提供完整的功能列表和预览(preview)版本下载。
InfoQ采访了维诺德·库马尔·瓦维拉帕里(Vinod Kumar Vavilapalli),他是Hortonworks YARN开发主管,也是Apache软件基金会YARN项目的项目负责人。
InfoQ:Apache的Hadoop 2.2.0版本的GA差不多是一年前了,现在你怎么看那时开发者社区采纳了YARN?
从社区发行Apache Hadoop 2和YARN的GA版本到现在,这是梦幻般的一年。对于我们这些沉浸在Hadoop的日常演变中的人来说,最初的版本好像是很久以前的事,但对于普通大众来说,我想这似乎就像是昨天发生的事情。社区创新步伐的加速令人惊讶。
在Hadoop 2第一年的过程中,我们看到了数量庞大的企业与其它Hadoop集群迁移到了YARN上。
此外,我们已经看到整个Hadoop生态系统中的相关项目广泛采用了YARN。新的框架如Apache TEZ和Apache Samza雨后春笋般涌现,他们都仅工作YARN之上。在过去的一年,在框架层出现了非常多的活动,这些框架最终都提供给最终用户编程模型或API,它们都使用了相同的公共资源管理层(YARN)。我们也看到一些有能力的用户在原生的YARN上去实现有特殊用途的应用程序,这些应用会直接与资源管理层进行集成。
InfoQ:您能总结一下在YARN上运行现有Map / Reduce程序的优势吗?有没有性能收益呢?
为了理解YARN所带来的收益,需要适当介绍一下在YARN上构建Map/Reduce的背景。当人们在YARN上运行MapReduce应用程序时,他们其实是在和构建在YARN之上的MapReduce框架进行交互 - 我们称之为MRv2-on-YARN。去年我们发布YARN时,我们确信,所有基于Hadoop 1.0中公开、稳定的API编写的MapReduce应用程序,完全可以不用修改而直接运行在YARN上。在过去的一年里,我亲眼见到这种后向兼容性对我们的客户和现有用户迁移到YARN上是何等重要。
为了量化这一点,我们远在第一个YARN的alpha版本发布之前就进行了Hadoop的benchmarks测试。相比当时最新、稳定版的Hadoop-1.0, YARN在几乎所有的早期测试中都有着显著更好的表现。测试中的大多数项快了一倍。因此, “Hadoop2.x>=2*Hadoop1.x”这个 伪数学公式意味着你在相同的硬件条件下可以得到2倍的吞吐量。即使是那些没有显著更好表现的测试项,也都至少与Hadoop 1.0看齐。
这很有趣 - 前几天我开玩笑说,YARN的alpha和beta版本类似于Gmail的经历 -尽管在那个时候还带着Beta版本的绰号,可平台早就生产出去了。我们特意选择了推迟GA版本的发布,直到我们绝对确认,可以通过稳定的平台API来支持基于YARN之上的范例。由社区来完成这些API的变化,这点使我们非常自信,即YARN的API能够在很长一段时间支持用户,特别是在基本框架之上仅开发MapReduce应用的开发者。
最终要注意性能,这些自身的改进让企业有很多动机升级到HDP2,即使他们没有利用新平台中提供的一些技术特性 - 比如可变的数据访问,可扩展性,灵活性等。
InfoQ:除了YARN,Hadoop的生态系统在过去一年左右看起来是爆炸式的发展。你可以讲几个生态系统中对开发者来说非常相关的的项目吗,以及为什么要关注它们?
哦,是的,对Hadoop来说这些活动在过去的一年一直在发生!即使对于我们这些Hadoop相关项目的活跃贡献者和生态系统日常演变的参与者来说,吸收消化所有项目的这些创新,也变得越来越难。
最接近我内心的项目就是Apache TEZ – 它是针对性的数据处理应用的分布式执行框架。它建立在YARN之上,除了利用已经提供给MapReduce应用程序的资源管理功能的优势,它还将其扩展到针对那些非批处理的用例中。虽然是一个这样年青的项目,但它已经证明了自己的气魄 – Hadoop生态系统中所有大项目,如Apache Hive、Apache Pig已经与Apache TEZ进行了集成,并已达到相比Hadoop MapReduce更快的执行速度和更高的性能。如果你已经有了基于Hadoop 1.0的SQL分析应用或数据管道,只要打开开关就可以得到巨大的性能提升。如果你是开发者希望为数据处理写新的DSL,你会想看看TEZ。
另一个对我重要的项目是Apache Slider(滑块),这个项目是为了简化那些长期运行、以服务为基础、YARN上的分布式应用。Slider帮助这些应用程序同YARN进行整合,并且无需修改现有的代码。Slider是一个层,它提供了横跨YARN应用生态系统的一致性,从而简化了操作和资源管理。这使YARN可以线性地扩展计算和存储以支持今天的各种企业应用程序。
这个领域里正在发生很多事情,围绕在Apache Hive周围的Stinger initiative (毒刺行动)与Apache Hive、 Apache Spark将持续提供速度、规模和SQL全面分析能力上的巨大收益。Apache Spark基于YARN,为机器学习和数据科学等提供在内存中快速的数据处理。
总之,我会说在这个所谓的“爆炸”中,最令人兴奋是围绕在Hadoop周围,所有Apache开源项目的参与水平在提高,以使其成为企业级的数据平台。令人吃惊的是,这个我们工作了多年的小项目,现在成为世界各地成千上万开发者的中心。
InfoQ:你刚才至少引用了三个喜欢的项目。但对那些认为Hadoop生态系统变得越来越复杂,有太多重叠的项目在做几乎类似事情的怀疑态度,你有什么要说的?你可以给一些具体的、可能如何解决的例子吗?
整个生态系统的复杂性在增长的观点是事实,随之带来的是关于复杂性的错误认知。
与之前许多其他统一的单一堆栈架构不同,Hadoop平台是通过各个层各负其责来建立的。这是Unix的理念,每一层的建立只做一件事和并做好这件事。这不仅有助于划定责任,也有助于更快的发展。请记住,不同的开放的开发者社区正致力于每一层上。有时候,这意味着有两个或更多的没有交集的开发者工作在同一层上,不过没关系 - 要么每个这些项目开拓出自己的优势,或者是最好的项目简单胜出。在真正开放的社会中、精英社会中,没有单独的供应商可以最终决定最好的方法。
InfoQ:HDP2.2有很多水平增长的特性,特别是在合规性,安全性,管理,运营等。这些功能将如何帮助Hadoop获得更多的企业地盘?
在我们做垂直能力加强的同时,也在平台的水平方面花了许多时间。
在这种宏观环境下,人们可以很容易地看到安全已不再是一个枝节问题。随着Hadoop平台采用的增加,以及在组织内部使用共享、多租户的服务,安全问题已经到了最前沿。 Hadoop历史上已经在所有的层中植入了良好的认证功能,而现在Apache Ranger(游侠)作为这些功能的扩展,成为HDP2.2的一部分。Apache Ranger是一个全面的方法,提供集中安全策略的管理,并解决授权和审计。例如,管理员可以轻松为个人用户和组对文件,表格等设置策略,然后审计对具体数据来源的访问。最终,安全需要全面的方案,并需要在堆栈的所有层进行处理。我们正在为整个Hadoop生态系统编织一个安全网,这是必要的。
在数据治理和管理方面,HDP2.2中Falcon(猎鹰)做出了巨大进步。你会看到通过数据和元数据复制、用户界面和API的改进,我们在数据管道(data-pipeline)管理用户界面、安全性,灾难恢复上都进行了提升,以帮助用户解答有关数据沿袭,分类和审计问题。
随着几十个新功能合入Apache Ambari,系统的操作也渐入佳境。如果非要挑一个重要的主题来说,应该是Ambari在实现第三方扩展上会变得更好,这包括API和用户界面。通过使用Ambari视图,第三方就可以使用和Ambari一样相同的底层集群信息,并建立自己的用户界面来显示域或站点的特定可视化信息。使用Ambari蓝图(blueprint),可以指定一个完全新的堆栈定义及其组件布局,这样Ambari不必依赖于平时的安装向导就可以对自定义堆栈进行配置和编排。这些基本上剖开了Ambari的内脏,并把它们暴露出来作为干净的API,以被第三方来集成。
这一切都发生在广泛开放的开发社区中,几千家企业的开发者做出贡献以确认交付的是正确的需求。再次强调,这是只有Apache软件基金会可以促进的开放社区的力量。
查看英文原文:Hortonworks Data Platform Makes an Enterprise Push