写点什么

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

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

关注

评论

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

DvD刻录软件DVD Cloner 2024 for Mac,现已支持最新的蓝光电影复制

Rose

mac软件下载 DVD克隆 DVD Cloner 2024下载 DVD Cloner 2024 Mac

基础架构即代码 | 亚马逊如何在现实生活中实践 DevOps

亚马逊云科技 (Amazon Web Services)

DevOps 微服务 架构设计 Amazon Lambda Amazon API Gateway

榜样中国·传媒大奖2023信创力量评选结果发布!MIAOYUN获评“信创企业TOP30”!

MIAOYUN

信创 信创云 信创产业 信创生态 信创适配

秒速出图!体验 TensorRT 加速 Stable Diffusion 图像创作

阿里巴巴云原生

阿里云 云原生

Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab

极狐GitLab

推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制

码界西柚

Java git 原理分析 后端处理 2024年第十八篇文章

Rainbond v5.17 版本发布,统一管理离线镜像和私有仓库

北京好雨科技有限公司

Kubernetes 云原生 容器云 离线

为什么人工智能与软件测试的结合话题开始火爆

测试人

软件测试 自动化测试 测试开发

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 3

SEAL安全

Kubernetes Helm Grafana

一些无人不知的命名规范

小魏写代码

texifier mac LaTeX编辑工具下载安装(原Texpad)

Rose

Mac软件 LaTeX 编辑器 Texpad Texifier激活码

Led显示屏同步和异步控制的原理是什么

Dylan

控制 LED显示屏 全彩LED显示屏 led显示屏厂家

容器技术-Docker_安装&操作

测试人

软件测试

QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答

汀丶人工智能

搜索推荐 LLM模型 智能问答 rag

画眉(京东科技设计稿转代码平台)介绍

京东科技开发者

十家传统企业数字化转型的心得体会:10大关键方面、拆解74 小点

天津汇柏科技有限公司

数字化转型

XMind 2024思维导图:新增 310 张 AI 原创插画

Rose

XMind 2024思维导图 XMind 2024下载 XMind 2024中文 思维导图下载

荣耀时刻 | 第七在线荣获艾媒2023中国企业服务年度企业

第七在线

文心一言 VS 讯飞星火 VS chatgpt (184)-- 算法导论13.5 1题

福大大架构师每日一题

福大大架构师每日一题

Spark SQL五大关联策略

京东科技开发者

BOE(京东方)携手新浪微博举办手机影像艺术展 创新科技赋能数字影像

科技热闻

如何在不影响业务的前提下执行大批量数据变更操作?

NineData

sql 数据 dba DML 阻塞

Linux 中常见目录的作用

emanjusaka

Linux 目录

【2024开年必备】最全面的Macbook/苹果电脑必备实用软件推荐

Rose

苹果软件 装机必备 Mac应用

【Mac&win】datagrip2023安装教程与激活码分享 亲测有效

Rose

ide DataGrip2023激活 DataGrip2023安装

ElasticSearch集群灾难:别放弃,也许能再抢救一下 | 京东云技术团队

京东科技开发者

面试官:Redis持久化能关吗?怎么关?

王磊

Java 面试题

顺丰科技LaaS实现产品化,数字生态战略提速

新消费日报

速看,速进。一起学习一起交流。

薛定谔的皮皮虾

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