我将在Hadoop 2.9.0上运行我的map reduce项目。我在我的项目中使用xml-rpc软件包,如下所示:
import org.apache.xmlrpc.*;
我将其他jar放入lib文件夹,当我在Hadoop中运行项目jar时,它显示此错误:
错误:java.lang.ClassNotFoundException:org.apache.xmlrpc.XmlRpcClient
我执行了以下命令:
bin/hadoop jar MRV.jar SumMR /user/hadoop/input /user/hadoop/output -libjars lib/xmlrpc-2.0.1.jar: lib/commons-codec-1.10.jar
如何执行此命令而不会出现ClassNotFoundException
错误?
答案 0 :(得分:0)
私有静态无效addJarToDistributedCache (类classToAdd,配置conf) 引发IOException {
// Retrieve jar file for class2Add
String jar = classToAdd.getProtectionDomain().
getCodeSource().getLocation().
getPath();
File jarFile = new File(jar);
// Declare new HDFS location
Path hdfsJar = new Path("/user/hadoopi/lib/"
+ jarFile.getName());
// Mount HDFS
FileSystem hdfs = FileSystem.get(conf);
// Copy (override) jar file to HDFS
hdfs.copyFromLocalFile(false, true,
new Path(jar), hdfsJar);
// Add jar to distributed classPath
DistributedCache.addFileToClassPath(hdfsJar, conf);
}