我正在尝试将第三方jar添加到hadoop作业中。我正在使用DistributedCache.addFileToClassPath
方法添加每个jar。我可以看到mapred.job.classpath.files
已正确填充在作业xml文件中。
-libjars对我也不起作用(很可能是因为我们没有使用toolrunner)
任何建议,可能出现什么问题?
答案 0 :(得分:0)
在HADOOP_CLASSPATH中添加Jar
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>
它将按预期使用该文件。