2012-07-12 63 views
0

我想将第三方jar添加到hadoop工作。我正在使用DistributedCache.addFileToClassPath方法添加每个罐子。我可以看到mapred.job.classpath.files已在作业xml文件中正确填充。 (因为我们没有使用toolrunner最有可能的)问题添加第三方jar到hadoop工作

任何建议,这可能是错误的

-libjars不为我工作,要么?

+0

您是在HDFS中添加的罐子,还是在您的工作客户端本地添加的罐子? – 2012-07-12 10:41:58

+0

你应该真的使用ToolRunner,你可以在 – 2012-07-12 15:09:27

+0

罐子已经在hdfs – akshit 2012-07-13 18:56:40

回答

0

添加的Jar在HADOOP_CLASSPATH

vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh 

添加最后一行

export HADOOP_CLASSPATH=/root/hadoop/extrajars/java-json.jar:$HADOOP_CLASSPATH 

“/root/hadoop/extrajars/java-json.jar” 是在Linux机器本身,而不是在HDFS路径

重新启动的Hadoop

命令

hadoop classpath 

应显示罐子在classpath中

现在运行MR工作照常

hadoop jar <MR-program jar> <MR Program class> <input dir> <output dir> 

它将使用文件按预期。