2012-07-12 91 views

回答

1

您可以做这样的事情,而且我一直都这样做。你调用的方法可以是静态的,也可以不是。

基本上是:

如果调用从代码之外的代码,你自己写的多数民众赞成包含在你的项目,你需要的时候,你的项目导出到一个.jar文件捆绑的是与你的代码。

如果您正在从包含在项目构建路径中的.jar文件中引用方法等,则需要将该.jar文件放在要运行作业的群集的每个节点上,并且在文件$ HADOOP_HOME/conf/hadoop-env.sh文件中编辑您的服务器上的HADOOP_CLASSPATH变量并重新启动群集。否则,你会得到一个没有找到类的错误。

一个例子是:

export HBASE_CLASSPATH=/path/to/one/file.jar:/path/to/another/file.jar 
+0

非常感谢。你能告诉我在后一种情况下HADOOP_CLASSPATH应该是什么? – 2012-07-13 10:48:46

+1

查看我上面的编辑。请注意,我之前说过错误的conf文件。你想编辑hadoop-env.sh而不是hdfs-site – Tucker 2012-07-13 13:55:56

+0

谢谢你的精心解答。 – 2012-07-14 06:06:32

0

是的,你可以做到这一点。 (我必须输入其他字符才能提交此答案,所以请忽略此句)

+0

谢谢。你能否提一下我怎样写这样一个样本方法? – 2012-07-12 07:09:54

+1

好,如果你已经从'Mapper'类扩展了,你可以简单地在这个类中放一个方法,并从map方法中调用它。你需要这样的代码吗? – 2012-07-12 07:16:57

+0

谢谢。这就够了。另外,你可以请回答我的另一个问题在Stackoverflow的Hadoop请吗?这是一个例外。 – 2012-07-12 07:28:16

相关问题