写点什么

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

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

关注

评论

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

极狐GitLab 正式发布安全补丁版本 17.6.2、17.5.4、 17.4.6(修复 12 个漏洞)

极狐GitLab

gitlab 安全漏洞

学习下Redis内存模型

京东科技开发者

垃圾短信?手机自动识别垃圾短信逻辑的分析

京东科技开发者

YashanDB共享集群产品能力观测:细节足见功底

YashanDB

数据库 yashandb

携手向未来,共绘新蓝图,零售创新峰会2024在桂林圆满落幕

极客天地

阿里云联合中国信通院等单位发布首个云计算智能化可观测性能力成熟度模型标准

阿里巴巴云原生

阿里云 云原生

融合创新,智领未来 | 2024华为云开源开发者论坛云原生精彩回顾

华为云原生团队

云计算 容器 云原生

AI听力陪练APP的技术框架

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI听力练习

Databend 产品月报(2024年11月)

Databend

数据库

【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录

YashanDB

数据库 yashandb

苦熬3个月,阿里Java岗五面,成功上岸获offer!Java面试题库分享

程序员高级码农

Java 程序员 面试 Java 面试 Java 面试题

Databend 为什么使用 Rust 开发?

Databend

rust语言

通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统

阿里云大数据AI技术

阿里云 Milvus LLM rag PAI

陶建辉荣登 2024 福布斯中国新时代颠覆力创始人榜单,见证创新力量的崛起

TDengine

数据库 tdengine 时序数据库

数据管理的演进之路:从自建系统迈向云原生时代

代码忍者

700PB数据的数仓依然“快稳省”!ByteHouse这本白皮书揭秘关键(内附下载链接)

字节跳动数据平台

OLAP 云数据仓库 云数仓

关系型数据库设计三大范式

京东科技开发者

自动化测试AI智能体:掌握AI,人人都是自动化测试工程师

测试人

软件测试

思特奇构建开放数智生态,携手运营商智迎AI新纪元

科技热闻

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

阿里巴巴云原生

阿里云 云原生

统一身份安全管理体系的业务协同管理和支撑能力

芯盾时代

iam 零信任 权限管理系统 统一身份管理平台

【YashanDB知识库】kettle同步大表提示java内存溢出

YashanDB

数据库 yashandb

【YashanDB知识库】查看表空间是否加密

YashanDB

数据库 yashandb

读懂NotebookLM,或许能治愈AI应用缺失症

脑极体

AI

制造业4.0:AI与机器人如何重塑生产线

天津汇柏科技有限公司

机器人 制造业 AI 人工智能

工业 4.0 赋能 | TapData 诚邀制造行业技术伙伴,共享行业数字化、智能化市场新机遇

tapdata

智能制造 实时数据集成 动态排程 质量追溯

【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题

YashanDB

数据库 yashandb

两招玩转阿里云系统事件监控

阿里巴巴云原生

阿里云 云原生

全新CleanMyMac专业测评:Mac电脑专业的系统清理和优化工具

阿拉灯神丁

CleanMyMac X Mac软件 如何清理苹果电脑 苹果系统清理 mac系统维护

深度解析:利用API技术高效采集淘宝商品信息(涵盖价格、详情图、主图、SKU属性等)

代码忍者

API 接口 pinduoduo API

客观看待“去测试化”的论调

老张

软件测试 自动化测试 QA 质量保障

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