【ArchSummit架构师峰会】基于大模型的基础框架、中台、应用层等专题全覆盖 >>> 了解详情
写点什么

Spring for Apache Hadoop 1.0 发布

  • 2013-03-18
  • 本文字数:2172 字

    阅读完需:约 7 分钟

SpringSource 发布了 Spring for Apache Hadoop 1.0 。开发者能够通过它编写基于 Spring Framework 的 Hadoop 应用,还能很容易地与 Spring Batch 和 Spring Integration 集成。Spring for Apache Hadoop 是 Spring Data 大型项目的一个子项目,它基于开源的 Apache 2.0 许可发布。

Hadoop 应用通常是一个命令行工具、脚本和代码的集合。Spring for Apache Hadoop 为 Hadoop 应用开发提供了一个一致性的编程模型和声明式配置模型。开发人员现在能够借助它使用 Spring 编程模型(依赖注入、POJO 和辅助模板)实现 Hadoop 应用,并且能够以标准的 Java 应用而不是命令行工具的方式运行它。Spring for Apache Hadoop 支持对 HDFS 的读写操作,支持运行 MapReduce、流或者级联工作,还能够与 HBase、Hive 和 Pig 交互。

Spring for Apache Hadoop 包含以下关键特性:

  • 支持声明式配置,能够创建、配置和参数化 Hadoop 连接,支持 MapReduce、流、Hive、Pig 和级联工作。有不同的“runner”类执行不同的 Hadoop 交互类型,它们分别是 JobRunner、ToolRunner、 JarRunner、 HiveRunner、 PigRunner、CascadeRunner 和 HdfsScriptRunner。
  • 全面的 HDFS 数据访问支持,可以使用所有基于 JVM 的脚本语言,例如 Groovy、JRuby、Jython 和 Rhino。
  • 支持 Pig 和 Hive 的模板类 PigTemplate 和 HiveTemplate。这些辅助类提供了异常转化、资源管理和轻量级对象映射功能。
  • 支持对 HBase 的声明式配置,同时为 Dao 层支持引入了 HBaseTemplate。
  • 声明和编程支持 Hadoop 工具,包括文件系统 Shell(FsShell)和分布式复制(DistCp)。
  • 安全支持。Spring for Apache Hadoop 清楚运行 Hadoop 环境的安全约束,因此能够透明地从一个本地开发环境迁移到一个完全 Kerberos 安全的 Hadoop 集群。
  • 支持 Spring Batch。通过 Spring Batch,多个步骤能够被调整为有状态的方式并使用 REST API 进行管理。例如,Spring Batch 处理大文件的能力就可以被用于向 HDFS 导入或者从 HDFS 导出文件。
  • 支持 Spring Integration。Spring Integration 允许对那些在被读取并写入 HDFS 及其他存储之前能够被转换或者过滤的事件流进行处理。

下面是配置示例和代码片段,大部分来自于 Spring for Hadoop 博客或者参考手册。

MapReduce

复制代码
<!-- use the default configuration -->
<hdp:configuration />
<!-- create the job -->
<hdp:job id="word-count"
input-path="/input/" output-path="/ouput/"
mapper="org.apache.hadoop.examples.WordCount.TokenizerMapper"
reducer="org.apache.hadoop.examples.WordCount.IntSumReducer" />
<!-- run the job -->
<hdp:job-runner id="word-count-runner" pre-action="cleanup-script" post-action="export-results" job="word-count" run-at-startup="true" />

HDFS

复制代码
<!-- copy a file using Rhino -->
<hdp:script id="inlined-js" language="javascript" run-at-startup="true">
importPackage(java.util)
name = UUID.randomUUID().toString()
scriptName = "src/main/resources/hadoop.properties"
// fs - FileSystem instance based on 'hadoopConfiguration' bean
fs.copyFromLocalFile(scriptName, name)
</hdp:script>

HBase

复制代码
<!-- use default HBase configuration -->
<hdp:hbase-configuration />
<!-- wire hbase configuration -->
<bean id="hbaseTemplate" class="org.springframework.data.hadoop.hbase.HbaseTemplate" p:configuration-ref="hbaseConfiguration" />
// read each row from HBaseTable (Java)
List rows = template.find("HBaseTable", "HBaseColumn", new RowMapper() {
@Override
public String mapRow(Result result, int rowNum) throws Exception {
return result.toString();
}
}));

Hive

复制代码
<!-- configure data source -->
<bean id="hive-driver" class="org.apache.hadoop.hive.jdbc.HiveDriver" />
<bean id="hive-ds" class="org.springframework.jdbc.datasource.SimpleDriverDataSource" c:driver-ref="hive-driver" c:url="${hive.url}" />
<!-- configure standard JdbcTemplate declaration -->
<bean id="hiveTemplate" class="org.springframework.jdbc.core.JdbcTemplate" c:data-source-ref="hive-ds"/>

Pig

复制代码
<!-- run an external pig script -->
<hdp:pig-runner id="pigRunner" run-at-startup="true">
<hdp:script location="pig-scripts/script.pig"/>
</hdp:pig-runner>

如果想要开始,可以下载Spring for Apache Hadoop 或者使用_org.springframework.data:spring-data-hadoop:1.0.0.RELEASE_ Maven 构件。还可以获取Spring for Hadoop 的 WordCount 示例。在 YouTube 上还有介绍Spring Hadoop 的网络会议。

Spring for Apache Hadoop 需要 JDK 6.0 及以上版本、Spring Framework 3.0 及以上版本(推荐使用 3.2)和 Apache Hadoop 0.20.2 (推荐 1.0.4)。现在并不支持 Hadoop YARN、NextGen 或 2.x。支持所有的 Apache Hadoop 1.0.x 分布式组件,这些分布式组件包括 vanilla Apache Hadoop、Cloudera CDH3、CDH4 和 Greenplum HD 等。

想要获取更深入的信息,你可以阅读 Spring for Apache Hadoop 参考手册 和 Javadoc 。Spring for Apache Hadoop 的源代码示例托管在GitHub 上。

查看英文原文 Spring for Apache Hadoop 1.0

2013-03-18 07:445523
用户头像

发布了 321 篇内容, 共 116.2 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

Javacv 音视频小工具 - 下载抖音无水印视频

张音乐

Java 音视频 ffmpeg 抖音 javacv

情指勤指挥调度平台搭建,公安重点人员管控平台搭建

字节三面:对于Spring你了解多少?如果你会了这150道题 ,吊打面试官岂不是洒洒水?

北游学Java

Java spring Spring Framework spring Boot Starter spring cloud alibaba

融云音视频产品免费 20 万分钟 助力通信场景全搭建

融云 RongCloud

26天吃透算法笔记,面试字节,面试官朝我比了个“ok”

比伯

Java 编程 架构 算法 技术宅

积极研发区块链技术落地应用业务 这家A股上市企业试水云算力挖矿

CECBC

区块链

思维导图学《Java性能权威指南》

Yano

Java 性能 思维导图

专业开发者眼中的HarmonyOS:专访资深软件工程师李宁

Geek_283163

华为

OSI七层模型

赖猫

TCP 后台开发 后端 网络编程 网络协议

快速定制OCR识别模型好帮手:百度EasyDL OCR自训练平台上线啦!

百度大脑

EasyDL-OCR

回归主流:区块链新大门的“密钥”

CECBC

区块链

BERT和GAN咋压缩,且看咱PaddleSlim新利器—— OFA

百度大脑

百度 飞桨

如何将区块链打造为城市底层基础设施

CECBC

区块链

混音新手必备软件:FL Studio,用它简单制作混音

奈奈的杂社

视频云全球创新挑战赛 —— 视频目标分割经典算法解析

阿里云视频云

阿里云 计算机视觉

Redis单线程已经很快,为何6.0要引入多线程?有啥优势?

Java架构师迁哥

数据中台在企业数字化转型中的践行(上篇)

EAWorld

架构训练营作业-模块二

西伯利亚鼯鼠

一文读懂容器存储接口 CSI

阿里巴巴云原生

容器 云原生 k8s 存储 调度

交易所跟单软件搭建,合约跟单系统开发

实时 OLAP, 从 0 到 1

Apache Flink

flink OLAP 区块链技术

好运转购物商城

飞亚科技

身份和访问管理标准及挑战

龙归科技

物联网 云服务 认证授权 身份和访问管理

用 JavaScript 实现三次贝塞尔动画库 - 前端组件化

三钻

JavaScript 大前端 动画 组件化

跟着源码学IM(八):万字长文,手把手教你用Netty打造IM聊天

JackJiang

Netty 即时通讯 IM

TimSort — 以人命名的排序法

D

数据中台在企业数字化转型中的践行(下篇)

EAWorld

SpringBoot Admin2.0 集成 Java 诊断神器 Arthas 实践

阿里巴巴云原生

Java 运维 云原生 中间件 Arthas

聪明人的训练(十二)

Changing Lin

4月日更

攻击区块链网络的都有哪些方式方法

CECBC

区块链

Hadoop的发展及其架构

五分钟学大数据

hadoop 4月日更

Spring for Apache Hadoop 1.0发布_Java_Bienvenido David_InfoQ精选文章