我在eclipse上使用cascalog。看起来对hadoop的依赖关系是在project的project.clj文件中提供的,如下所示
:profiles { :dev {:dependencies [[org.apache.hadoop/hadoop-core "1.1.2"]]}}
如果我必须包含对本地安装的hadoop单节点集群或某个外部hadoop集群的依赖性,我应该怎么做?如果是本地的,我是否应该简单地将“path to hadoop”替换为“org.apache.hadoop”?您的意见将不胜感激。
顺祝你,辛杜
2条答案
按热度按时间5q4ezhmt1#
sindhu,在project.clj中不适合指定集群的位置。
project.clj的作用就像pom.xml对java/maven的作用一样。在这里查看关于leinengen依赖关系管理的教程。您应该确保声明依赖关系的版本与您将要运行的版本匹配。
您最终运行的集群是在hadoop conf文件中控制的,具体来说就是通过在mapred-site.xml中使用“mapred.job.tracker”更改作业跟踪器的位置。你可以在这里看到他们
epggiuax2#
我可以查看在集群上运行的cascalog指南上找到的链接,在hadoop cl上开发和部署cascalog查询usterhttp://nathanmarz.com/blog/news-feed-in-38-lines-of-code-using-cascalog.html 您可以找到在生产集群上运行的段落,这里是复制/粘贴
1-将示例数据复制到集群中的“/tmp/follows”和“/tmp/action”。
2-下一步,运行“leinuberjar”创建一个包含程序及其所有依赖项的jar。因为演示代码指定了:gen类并有一个main方法,所以我们可以像运行其他hadoop程序一样运行它。要在集群上运行查询并以文本格式将结果输出到“/tmp/results”,请运行:
3-
hadoop jar cascalog-demo-standalone.jar cascalog_demo.demo /tmp/follows /tmp/action /tmp/results