写点什么

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:446056
用户头像

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

关注

评论

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

ToDesk:办公高效协作,游戏畅爽操控,远程新境界

小喵子

远程办公 远程 远程游戏

用Comate的zulu 快速开发 “标书速读”网站

严学峰

AI编程 comate 文心快码Zulu

经济越差,越是好产品脱颖而出的时候

Feedalyze

产品经理 用户 产品迭代 用户反馈 商业需求

12月3日《如何运用 Scrum 打造一个高绩效的团队》

ShineScrum

Scrum 团队 团队成长 团队效率

设备点检 设备维护经验总结(13)

万里无云万里天

工业 工厂运维 设备点检

AI 大语言模型知识图谱:让模型“更懂知识、更聪明、更可信”

上海拔俗

ERP实施,从哪几个方面入手能保证成功落地?

优秀

ERP ERP实施

文件完整性监控工具

运维有小邓

日志管理 日志审计 日志管理系统 文件完整性 日志收集

使用AI简化身份安全查询的技术实践

qife122

自然语言处理 身份安全

「 活动 」阿里云 ESA 有奖征文|六大选题 + 多档奖励,所有人均可参加

阿里云CloudImagine

云计算 阿里云 边缘计算 征文投稿 ESA

AI诊后患者管理系统:让康复过程“有监测、有提醒、有陪伴”

上海拔俗

实验室RFID智能化解决方案

斯科信息

RFID智能危化品柜 CK-DP14 CK-GWHA

人工智能赋能药监系统:用智能技术筑牢药品安全“防火墙”

上海拔俗

人工智能“芯模联动”产业大会召开  萧山区芯模社区正式开园

极客天地

工业数字化 信息化经验总结(11)

万里无云万里天

数字化转型 工业 工厂运维

AI 社区综合治理系统:让社区管理从“人盯人”变成“智能协同“

上海拔俗

快速构建一个基础、现代化的 WinForm 管理系统

追逐时光者

C# .net WinForm

广汽昊铂首获时速120公里的L3高速测试牌照

科技经济

集成专栏——MQ 消息集成的可靠性保障

inBuilder低代码平台

事件总线 ERP系统 MQ消息 消息异步传递

如何找到适合好用的 AI 数据分析软件?实用指南

Aloudata

大数据 数据分析 agent ChatBI dataagent

AI 慢病高危管理系统:让风险“早发现、可干预、能下降”

上海拔俗

AI变革,企业如何应用AI大模型重塑思考维度?

禅道项目管理

人工智能 AI AI编程 智能 BI 企业AI应用

人工智能皮肤科慢病管理系统

上海拔俗

模糊照片如何快速变清晰?3个AI图片放大工具盘点

职场工具箱

人工智能 图片无损放大 AIGC 在线设计 AI工具

AI 智能问答系统:用技术让知识服务“问得准、答得快、学得懂”

上海拔俗

KWDB 3.0.0 正式发布!年度重磅升级,重塑 AIoT 产业智能数据基座

KaiwuDB

数据库 KaiwuDB 分布式多模数据库 KWDB开源数据库

KnowFlow 牵手百度 PaddleOCR-VL,开启高精度文档解析新时代

KnowFlow RAG 知识库

AI 大模型 知识库 agent rag

基于 Hologres 构建智能驾驶图像高性能分析系统

阿里云大数据AI技术

sql 阿里云 数据分析 hologres 多模态分析

AI 智能分析平台系统:用数据智能让决策“看得清、判得准、行得稳”

上海拔俗

直播预告|开启“智能升级”协作之旅,枫清科技让AI更“懂”行业

Fabarta

Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析

SelectDB

Apache 数据库 实时数仓 Doris AI 函数

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