我正在尝试将第三方jar添加到hadoop工作中。我正在使用DistributedCache.addFileToClassPath
方法添加每个jar。我可以看到在作业xml文件中正确填充了mapred.job.classpath.files
。
-libjars也对我不起作用(很可能是因为我们未使用Toolrunner)
有什么建议,可能是什么问题?
最佳答案
将 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
应该在类路径中显示jar
现在照常运行MR工作
hadoop jar <MR-program jar> <MR Program class> <input dir> <output dir>
它将按预期使用该文件。
关于hadoop - 在第三方作业中添加第三方jar的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11444855/