Cascalog Hadoop版本支持

时间:2013-09-06 16:25:40

标签: hadoop clojure cascalog

我注意到Cascalog入门指南指定了Hadoop的版本

:profiles { :dev {:dependencies [[org.apache.hadoop/hadoop-core "1.0.3"]]}}

如果我的小组使用不同版本的Hadoop,那我运气不好吗?更广泛地说,Cascalog可以与哪些Hadoop版本进行互操作?

1 个答案:

答案 0 :(得分:0)

目前简单的答案(截至2014年8月10日)Cascalog版本为2.1.1,默认情况下使用Cascading 2.5.3和Hadoop 1.2.1,所以是的,如果你的团队没有使用Hadoop版本1.x然后你运气不好。

但是,Cascalog可以移植到Hadoop 2.x. 级联2.5.x从文档中支持Hadoop 2 Hadoop 1 vs Hadoop 2

  

Cascading 2.5通过提供两个Java依赖项cascading-hadoop.jar和cascading-hadoop2-mr1.jar来支持Hadoop 1.x和2.x.这些依赖项可以互换,但hadoop2-mr1.jar会引入新的,并在适当的时候弃用旧的API调用。应该指出hadoop1-mr1.jar仅支持MapReduce 1 API约定。使用此命名方案,可以引入新的API约定,而无需在依赖项上命名冲突的风险。

以下是将Cascalog更新为Hadoop 2.x的简单指南:

  • 更新project file
  • 中的cascading-hadoop jar
  • 更新HADOOP-VERSION配置文件
  • 中的hadoop版本
  • 查找已弃用的级联API的所有用法并更新为新约定。
  • 编译并修复警告/错误
  • 复发

我不是Cascalog源代码的专家,但是使用Cascading API可以找到几行grep,升级API似乎很简单,如果有点单调乏味。