我注意到Cascalog入门指南指定了Hadoop的版本
:profiles { :dev {:dependencies [[org.apache.hadoop/hadoop-core "1.0.3"]]}}
如果我的小组使用不同版本的Hadoop,那我运气不好吗?更广泛地说,Cascalog可以与哪些Hadoop版本进行互操作?
答案 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的简单指南:
我不是Cascalog源代码的专家,但是使用Cascading API可以找到几行grep,升级API似乎很简单,如果有点单调乏味。