Spring for Apache Hadoop 1.0 正式发布
我们很高兴地宣布 Spring for Apache Hadoop 发布了第一个 GA 版本 (1.0),距其 第一个里程碑版本 发布几乎正好一年。在此期间,我们采纳了您的许多反馈来推动路线图,感谢社区中所有提供帮助的人!虽然在过去一年中增加了许多新功能,但 Spring for Apache Hadoop 的目标保持不变,即简化基于 Hadoop 的应用程序的开发。
立即下载,或在此处查看 Maven Artifacts。
简化的编程模型与一致性
我们发现,使用 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 流程,还可以通过熟悉的 JDK 调用
前和
后通用的基于 JVM 的
脚本Callable契约。您可以根据需要混合搭配 runner,但随着复杂性的增长,您可以轻松地
升级到
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 组织。