LinkedIn开源高可用Hadoop工具集Gradle

来源:InfoQ 作者: 张天雷
  

许多大科技公司都是开源事业的参与者和引领者,比如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上数据驱动的特征实际上是由几十个AzkabanApache 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上。

转自 http://www.infoq.com/cn/news/2015/08/LinkedIn-Gradle-Hadoop?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global


时间:2015-08-29 10:32 来源:InfoQ 作者: 张天雷 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量