【发布时间】:2014-03-25 14:30:51
【问题描述】:
我在本地节点 CentOS 上运行 Hadoop 2.2.0.2.0.6.0-101。
当我在 Eclipse 项目中包含来自 /usr/lib/hadoop 和 /usr/lib/hive 的必要 jar 作为依赖项时,我的 MapReduce 作业在 Eclipse 中编译。寻找必要的罐子是一项真正的任务!而 grep 是我完成这项工作的唯一工具,比如 grep -ri -l "FacebookService" /usr/lib/hadoop
尽管当我尝试在编译它的同一本地节点上运行我的应用程序时遇到异常。我放弃了寻找必要的罐子——在一个例外被修复后,一个新的罐子出现了。
现在,在通过添加来自 /usr/lib/hadoop 和 /usr/lib/hive 的 jar 修复了大约 10 个异常之后,我得到了一个非常好的:
java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
有趣的部分:当我从这些目录中添加 所有 jars 时,我的程序就会运行!
最后一个解决方案在我的情况下不起作用,因为我需要创建自给自足的包以在另一个分布式 Hadoop 安装上运行我的应用程序。
部署 Hadoop MapReduce 作业的正确方法是什么? 我应该如何设置 Hadoop CLASSPATH 以在任何节点上运行 MapReduce 作业?
【问题讨论】:
-
使用 maven 构建并拥有来自 Jackson 的 JSON 库等依赖项。 Jar 在我们的集群上部署得很好。你确定你的设置有正确的配置吗?
标签: java hadoop deployment jar mapreduce