我在Eclipse上使用Cascalog。看起来像hadoop的依赖项是在项目的project.clj文件中提供的,如下所示
:profiles { :dev {:dependencies [[org.apache.hadoop/hadoop-core "1.1.2"]]}}
如果我必须包含对本地安装的Hadoop单节点集群或某些外部hadoop集群的依赖 - 我应该怎么办? 如果它是本地的,我应该简单地将“path to hadoop”代替“org.apache.hadoop”? 您的想法将不胜感激。
最诚挚的问候, 娜斯迪胡
答案 0 :(得分:0)
Sindhu,您的群集位置的规范在project.clj中不合适。
project.clj是将pom.xml与java / maven相提并论。查看leinengen依赖管理here的教程。 您应确保声明依赖项的版本与您将要运行的版本相匹配。
您最终运行的群集在hadoop conf文件中进行控制 - 特别是通过在mapred-site.xml中使用“mapred.job.tracker”更改作业跟踪器的位置。你可以阅读它们here
答案 1 :(得分:0)
我可以检查在cascalog指南上找到的链接在群集上运行 在Hadoop集群上开发和部署Cascalog查询 http://nathanmarz.com/blog/news-feed-in-38-lines-of-code-using-cascalog.html您可以找到段落在生产群集上运行,并在此处复制/粘贴
1-将样本数据复制到群集上,以“/ tmp / follow”和“/ tmp / action”。
2-接下来,运行“lein uberjar”来创建一个包含程序及其所有依赖项的jar。由于演示代码指定:gen-class并且有一个main方法,我们可以像任何其他hadoop程序一样运行它。要在群集上运行查询并将结果以文本格式输出到“/ tmp / results”,请运行:
3- hadoop jar cascalog-demo-standalone.jar cascalog_demo.demo /tmp/follows /tmp/action /tmp/results