我在Eclipse上使用Cascalog。看起来对hadoop的依赖是在项目的project.clj文件中提供的,如下所示
:profiles { :dev {:dependencies [[org.apache.hadoop/hadoop-core "1.1.2"]]}}如果我必须包含对本地安装的Hadoop单节点集群或一些外部hadoop集群的依赖关系,我应该怎么做?如果它是本地的,我是否应该简单地将“hadoop的路径”放在"org.apache.hadoop“的位置?您的想法将不胜感激。
向你致以最好的问候,Sindhu
发布于 2013-11-09 00:37:07
Sindhu,在project.clj中指定集群的位置是不合适的。
project.clj之于clojure就像pom.xml之于java/maven。查看leinengen的依赖管理here教程。你应该确保你声明的依赖版本与你将要运行的版本相匹配。
您最终运行的集群在hadoop conf文件中进行控制-特别是通过在mapred-site.xml中使用"mapred.job.tracker“更改作业跟踪器的位置。你可以在here上读到关于它们的内容
发布于 2013-11-16 04:07:09
我可以查看在集群上运行的cascalog guides 上找到的链接在Hadoop集群上开发和部署Cascalog查询 http://nathanmarz.com/blog/news-feed-in-38-lines-of-code-using-cascalog.html,您可以找到在生产集群上运行的段落,以及这里的复制/粘贴
1-将样本数据复制到集群中的"/tmp/follows“和"/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
https://stackoverflow.com/questions/18958564
复制相似问题