Spring for Apache Hadoop 1.0 正式发布
我们很高兴地宣布 Spring for Apache Hadoop 的第一个正式版 (release) (1.0) 发布,这距离其第一个里程碑版本发布几乎正好一年。在此期间,我们采纳了大量的反馈来推动路线图的制定,所以感谢社区中所有提供帮助的人!虽然在过去一年中增加了新功能,但 Spring for Apache Hadoop 的目标保持不变,即简化基于 Hadoop 的应用程序的开发。
立即下载,或在此处查看 Maven 工件。
简化的编程模型与一致性
我们观察到,如果使用 Hadoop 附带的标准现成工具,你很容易就会得到一个由命令行实用程序、脚本和代码片段拼凑而成的结构糟糕的 Hadoop 应用程序。Hadoop 生态系统中各种项目的不同来源,例如专注于声明式用法的
Hive 和
Pig,或者专注于编程角度的
Cascading 和
HBase,导致了不同的配置方法和 API 设计。
Spring for Apache Hadoop 在广泛的 Hadoop 生态系统项目中提供了一致的编程和配置模型:该框架不强制规定使用什么,而是采纳并增强您的技术堆栈,忠实于核心的 Spring 原则。
Spring 熟悉的 Template API 设计模式应用于 Hadoop,其结果是产生了诸如 HBaseTemplate、HiveTemplate 和 PigTemplate 等辅助类。这带来了熟悉的 Spring 数据访问 Template 特性,例如转换为 Spring 可移植的数据访问异常层次结构、对底层资源的线程安全访问以及轻量级对象映射特性。Java 中心的 API,如 Cascading,可以自由使用,无论是否需要额外配置,都可以通过 Spring Framework 出色的 Java 配置来实现。
从小处着手,按需发展
过去一年中出现的另一个主题是鼓励从小处着手,并逐步发展为复杂解决方案的方法。各种
Runner 类的引入允许执行
Hive、
Pig 脚本、普通的 Map/Reduce 或 Streaming
作业、Cascading flows,还可以调用
前置 和
后置 通用基于 JVM 的
脚本,所有这些都通过熟悉的 JDK
Callable契约。您可以根据需要混合搭配 runners,但随着复杂性的增加,可以轻松地“升级”到
Spring Batch,从而可以以有状态的方式协调多个步骤并使用 REST API 进行管理。Spring Batch 在处理大型文件 ETL 方面的丰富功能直接转换为 Hadoop 用例,用于从 HDFS 摄取和导出文件。Spring Hadoop 与
Spring Integration 结合使用,可以对事件流进行丰富的处理,这些事件流可以在从 HDFS 或其他存储(如 NOSQL 存储)读取和写入之前进行转换、丰富、过滤,而
Spring Data 为此提供了大量的支持。我们已经通过
示例应用程序(无需编译,它们已经编译好并可以下载)涵盖了各种场景,这些示例应用程序补充了全面的用户文档(它甚至包含一个关于如何使用 Amazon Elastic MapReduce 服务开始使用 Spring for Apache Hadoop 的
章节)。此外,作为示例的补充,可以使用最近的
Spring Data 书籍[1] 来了解使用 Spring 技术、Hadoop 和 NOSQL 可以实现的所有功能集。
可移植性
Spring for Apache Hadoop 每天都会针对各种 Hadoop 1.x 分发版(例如原生 Apache Hadoop、Cloudera CDH3 和 CDH4、Greenplum HD)进行
测试:我们希望确保 SHDP 无论您的 Hadoop 环境如何都能可靠运行。我们正在积极努力改善用户体验——Spring for Apache Hadoop 在
Greenplum HD 分发版中开箱即用。我们密切关注 Hadoop 2.x 的开发,并致力于在不久的将来为其提供支持。
如果您正在使用 Spring for Apache Hadoop,我们很乐意听取您的意见。请参与我们的调查并分享您的经验。
一如既往,我们期待您的反馈!
[1] Spring Data 书籍销售所得的作者版税捐赠给 Creative Commons 组织。