[spring]-hadoop(Spring Data的子模块)和spring-batch对MR整合

干货(3)-spring-batch+spring-hadoop+olh整合 – Hadoop分布式数据分析平台-炼数成金-Dataguru专业数据分析社区
http://f.dataguru.cn/thread-155752-1-1.html
参加adc大会回来,讲师们的一个观点让我很受启发:就是淘宝和百度的Hadoop工程师们,会写10几个步骤的连续的MR作业来做运算,也不会去写低效 hive。在我的实际工作中,最多有四步的MR运算,代码已经比较混乱了,并不易于维护。这两天用spring-hadoop和spring-batch对MR整合,形成工作流,代码逻辑清晰很多,以后维护也方便了。

总的来说是两大步骤,先对原始日志进行ETL,然后用OLH将洗过的数据导入到oracle中,注意ETL中分为两步:先用脚本做一些初始化工作,我这里随便写了点代码,实际中可以拷贝数据,删除已存在的output目录等等;第二步是真正的ETL执行。通过定义StepExecutionListener和JobExecutionListener,我们可以在任务完成时进行回调操作,完成一些逻辑处理,在我的例子中就是com.etl.listener.EtlInitStepListener和
com.etl.listener.EtlJobListener。所有的JobParameters都在java代码中赋值,除了
fieldTerminator,这在实际应用中具有很大的灵活性。
项目采用maven管理,pom如下,

Spring和Hadoop结合 – Java语言开发技术-炼数成金-Dataguru专业数据分析社区
http://www.dataguru.cn/thread-303789-1-1.html

Spring和Hadoop结合,其实就是把Hadoop组件的配置,任务部署之类的东西都统一到Spring的bean管理里去了。
关键特性
Spring Hadoop支持MapReduce、Streaming、Hive、Pig和级联工作能够通过Spring容器执行。
HDFS的数据访问能通过JVM支持的脚本语言,如Groovy,JRuby,Jython等等。
支持声明式配置HBase
对于客户端连接Hadoop,提供强大的Hadoop配置选项和模板机制
还计划支持Hadoop工具,包括FsShell和DistCp等。
总之能把Hadoop各成员的配置,创建都和Spring的容器结合起来,得到统一的管理。

Spring for Apache Hadoop 2.1 正式发布 – 开源中国社区
http://www.oschina.net/news/59561/spring-for-apache-hadoop-2-1-0
Spring for Apache Hadoop 提供了 Spring 框架用于创建和运行 Hadoop MapReduce、Hive 和 Pig 作业的功能,包括 HDFS 和 HBase。如果你需要简单的基于 Hadoop 进行作业调度,你可添加 Spring for Apache Hadoop 命名空间到你的 Spring 项目即可快速使用 Hadoop 了,使用该项目无需了解过多 Hadoop 技巧。

Spring for Apache Hadoop 是 Spring Data 的子模块之一。

Spring现在思路是不是有问题.都是简化入门,在别人基础上封装一堆东西.出了问题是不是更麻烦?只是感觉.没很深度的用过Spring.
还真不是,它是给你省略了一些基础代码,让你能集中于你的业务,而且spring有良好的exception体系,除了stacktrace过多,定位问题还是蛮给力的。

Spring Hadoop – 整合Spring框架和Apache Hadoop平台的开源项目 – OPEN 开发经验库
http://www.open-open.com/lib/view/open1330747413217.html

这个项目整合了 Spring 框架和 Apache Hadoop 平台。该项目提供了一种方便的机制,让我们可以通过 Spring 容器来配置、创建和执行各种各样的服务和工具,像 MapReduce、Hive、Pig 和 Cascading 作业等。此外,该项目还通过 JVM 脚本语言——像 Groovy、JRuby、Jython 和 Rhino——提供了对 HDFS 数据访问的支持,为 HBase 提供了声明式配置的支持,以及对 Hadop 工具(包括 FS Shell 和 DistCp)提供了声明和编程的支持。  可能更有意义的是,工具还为基于 Spring 的应用程序提供了一种便利方式,可以使用 Hadoop 作为数据分析工具,而这些数据可能来自多个源,像 Spring Integration 和 Spring Batch,以及传统的关系型数据库等等。“例如,你可以让 Hadoop 作业成为 Spring Batch 环境中的 tasklet,从而我们可以开始对其进行调整,并在作业完成时拥有触发器。

Spring Data首页、文档和下载 – Spring Data 扩展 – 开源中国社区
http://www.oschina.net/p/spring-data
Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。

Spring Data 包含多个子项目:

Commons – 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化
Hadoop – 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业
Key-Value – 集成了 Redis 和 Riak ,提供多个常用场景下的简单封装
Document – 集成文档数据库:CouchDB 和 MongoDB 并提供基本的配置映射和资料库支持
Graph – 集成 Neo4j 提供强大的基于 POJO 的编程模型
Graph Roo AddOn – Roo support for Neo4j
JDBC Extensions – 支持 Oracle RAD、高级队列和高级数据类型
JPA – 简化创建 JPA 数据访问层和跨存储的持久层功能
Mapping – 基于 Grails 的提供对象映射框架,支持不同的数据库
Examples – 示例程序、文档和图数据库
Guidance – 高级文档

    原文作者:葡萄喃喃呓语
    原文地址: https://www.jianshu.com/p/cc7318c617f0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞