写点什么

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

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

关注

评论

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

“减负”,让“猪”可以飞得更高

鼎道智联

从“化学家”到开发者,从甲骨文到TDengine,我人生的两次重要抉择

TDengine

数据库 tdengine 开源 时序数据库

【云图说】每个成功的业务系统都离不开APIG的保驾护航

华为云开发者联盟

云计算 华为云 业务系统

20年技术老兵放弃大厂CTO头衔!这家创业公司凭什么吸引他?

XTransfer技术

CTO 跨境支付

Fortex方达发布电子交易生态体系 与客户共享共赢

股市老人

【网易云信】深度剖析「圈组」关系系统设计 | 「圈组」技术系列文章

网易智企

音视频 IM Discord

区块链哈希竞猜娱乐游戏俱乐部系统开发

开发微hkkf5566

web前端培训高频面试题

@零度

前端开发

「大模型」之所短,「知识图谱」之所长

博文视点Broadview

多云管理平台cmp是什么意思?谁能清楚解释一下

行云管家

云计算 云服务 多云管理 云资源 云管理

【云计算】多云管理平台和公有云两者之间是啥关系?

行云管家

云计算 公有云 私有云 多云管理平台 云管理

在线文档协作工具,是提高工作效率的第一步

小炮

“易 +”开源计划丨基于 WebRTC 的低延时播放器设计和实践

网易智企

开源 IM 低延时直播

2022年6月中国数据库排行榜:TiDB卷土重来摘桂冠,达梦蛰伏五月夺探花

墨天轮

数据库 TiDB 国产数据库 polarDB KingBase

深度剖析「圈组」关系系统设计 | 「圈组」技术系列文章

网易云信

音视频 IM Discord

【网易云信】深度剖析「圈组」消息系统设计 | 「圈组」技术系列文章

网易智企

音视频 IM Discord

2022 年 5 月产品大事记

FinClip

Meetup回顾|DevOps&MLOps如何在企业中解决机器学习困境?

星策开源社区

开源 DevOps 算法 OpenMLDB MLOps

API如何检测安全配置是否有错误?

百家饭隐私计算平台创业者

安全 API

技术分享| 快对讲,全球对讲

anyRTC开发者

快对讲 抗丢包 网络传输FEC GT-RTN 语音对讲

为你推荐一款高效的IO组件——okio

HarmonyOS开发者

HarmonyOS

算力网络照进现实,浩鲸科技如何构建?

鲸品堂

算力网络

中台:数据中台、业务中台、技术中台、应用中台、AI中台……

WorkPlus

H.265编码原理入门

百度Geek说

视频编码

java培训自定义 ThreadPoolExecutor 线程池

@零度

jdk JAVA开发

搜狐员工遭遇工资补助诈骗 黑产与灰产有何区别 又要如何溯源?

郑州埃文科技

网络安全 网络灰黑产 IP溯源

大数据培训Flink高频面试题分享

@零度

flink 大数据开发

你对PHP数据类型或者其他编程语言的数据类型了解多少呢

迷彩

php 基础 6月月更 InfoQ极客传媒15周年庆

子网划分不会?瑞哥带你深入理解IP地址,手把手教你子网划分!

wljslmz

网络技术 6月月更 子网划分

架构实战营 第 6 期 模块八课后作业

火钳刘明

#架构实战营 「架构实战营」

对接上百个第三方 API 后的思考与沉淀

LA

经验总结 Java EE 经验分享、

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