如何使用外部jar运行hadoop?

时间:2018-11-02 22:06:07

标签: java hadoop jar

我将在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错误?

1 个答案:

答案 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);

}