写点什么

LinkedIn 开源高可用 Hadoop 工具集 Gradle

  • 2015-08-28
  • 本文字数:1011 字

    阅读完需:约 3 分钟

许多大科技公司都是开源事业的参与者和引领者,比如 Google、Netflix、Facebook 等公司,它们开源后的工具被广泛使用。现在,LinkedIn 也加入了开源大家庭。LinkedIn 的工程师创建了一个名为 Gradle 的项目,该项目包含了若干个可以在应用中简化连接多个 Hadoop Job 的工作流工具。

创建运行在 Hadoop 集群上的应用的难点众所周知,而 Gradle 则是一项十分有潜力的高效解决方案。适用于 Apache Hadoop 的 LinkedIn Gradle 插件(Hadoop 插件)包含了同样适用于 Apache Hadoop 的 LinkedIn Gradle DSL(Hadoop DSL)。几年前,LinkedIn 公司就已采用 Gradle 作为其基础软件构建系统。Gradle 使得 Hadoop 开发者能够更高效地完成应用程序的编译、测试和调配。Gradle 还可以帮助开发者方便地使用多个 Hadoop 应用框架。不管在开发时使用了什么工具,Hadoop 插件都可以让开发者在一致的体验下管理他们的项目。

在开发出 Hadoop 插件之前很久,LinkedIn 的工程师们就意识到了编写个人的 Hadoop Job 仅仅是有效使用 Hadoop 挑战的一部分。LinkedIn 上数据驱动的特征实际上是由几十个 Azkaban Apache Oozie 管理的 Hadoop Job 工作流产生的。理解工作流中各个 Job 之间的关系并且管理工作流手册成为了一项难点。例如,为了指定 LinkedIn 上运行的一些处理大数据的工作流,需要用到非常多的 Job 文件,工程师为此写了几个内部开发的工具以便更简单地处理工作流。然而这些工具都是使用了 Ant、Maven 和 Ruby 混合编成,这就阻碍了全公司上下全面采用 Gradle 的进程。随着时间的推移,系统变得越来越脆弱,维护也变得越来越困难。为了解决以上问题,LinkedIn 开发了 Hadoop DSL。

Hadoop DSL 是一个基于特定领域的嵌入式 Groovy 语言,开发者可以在 DSL 中随意使用 Groovy 或 Java。它有着自然语言的结构,适用于特定的 Job 和诸如 Azkaban、Apache Oozie 等 Hadoop 工作流管理器。另外,DSL 是静态编译的,因此也可以进行静态检查。静态检查器可以在编译时检查出工作流文件中的常见问题,这样就避免了在运行 Hadoop 工作流几个小时后才报出错误。

Gradle 和 Hadoop DSL 已经成为了 LinkedIn 开发 Hadoop 工作流的标准工具。源代码在 GitHub 上。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-28 19:004297
用户头像

发布了 268 篇内容, 共 130.6 次阅读, 收获喜欢 24 次。

关注

评论

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

为什么强烈推荐 Java 程序员使用 Google Guava 编程!

沉默王二

Java Guava

企业项目迁移go-zero全攻略(二)

万俊峰Kevin

微服务 microservice Go 语言

Kubernetes生产环境最佳实践

xcbeyond

Kubernetes 容器 28天写作

12.4G阿里巴巴面经公开:技术笔记+视频讲解+简历模板,绝了!

996小迁

Java 架构 面试 程序人生

认识Nacos注册中心

登风

nacos

产品训练营--第三期作业(1)

曦语

产品训练营

滴滴Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台

滴滴云

kafka 运维 监控 滴滴Logi

全球首例银行“大型机”下移背后

数据君

我们,让9300万人办事少跑一趟

数据君

顺利拿到OPPO公司Android架构师offer,Android跨进程通信导论,全套教学资料

欢喜学安卓

android 程序员 面试 移动开发

Appium下的WDA使用个人开发者证书配置

行者AI

自动化测试

区块链如何帮助联合国支持全球教育?

CECBC

区块链

工具介绍 | 百度开源Server-Agent:高性能、高效率的任务调度执行引擎

百度开发者中心

开源

Java 读写锁 原来这么简单

Java架构师迁哥

还在为计算机网络协议烦恼?了解这一篇就够了

Java架构师迁哥

《王者荣耀》背后的数据秘密

数据君

【得物技术】无侵入式mock平台在得物的实践

得物技术

测试 数据 得物技术 Mock hulk

2021首次分享面试阿里P6心得:1000字超全面试题答案解析

比伯

Java 编程 程序员 架构 面试

Invalid bound statement (not found)

任广印

Java MyBatisPlus

每日知识总结

country

怎么理解Kafka消费者与消费组之间的关系?

李尚智

Java 架构 消息队列 消息中间件

幕后故事 | YRCloudFile助力顶级视效制作公司MORE VFX打造视觉盛宴

焱融科技

高性能 存储 焱融科技 3D渲染 影视制作

从设计模式理解Vue响应式(多图警告)

coolFish(呔呆)

JavaScript vue.js 响应式 大前端 设计模式

区块链有望被主流接纳的四个场景

CECBC

区块链

Elasticsearch Bulk API 批量增删改查

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

硬核!我花5小时肝出这篇Redis缓存解决方案,带你起飞!

数据库 redis 缓存架构

5G机遇 | 如何解决在核心场景的高并发、超低延迟需求?

VoltDB

数据库 5G 通信 VoltDB

加速AI边云协同创新!KubeEdge社区建立Sedna子项目

华为云原生团队

人工智能 开源 边缘计算 边缘技术

快速了解云原生架构

阿里巴巴云原生

架构 容器 微服务 云原生 k8s

数字货币写进多地“十四五”规划纲要草案 专家建议扩大数字人民币试点范围

CECBC

数字经济

2021最新Windows10环境下安装MacOS系统(黑苹果)亲测有效!!(VM安装黑苹果)

Z.

macos 黑苹果 windows vmware

LinkedIn开源高可用Hadoop工具集Gradle_Java_张天雷_InfoQ精选文章