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 软件基金会可以促进的开放社区的力量。
评论