java - 如何使用外部 jar 运行 hadoop?

标签 java hadoop jar

我将在 Hadoop 2.9.0 上运行我的 map reduce 项目。我在我的项目中使用 xml-rpc 包如下:

import org.apache.xmlrpc.*;    

我将其他 jar 放入 lib 文件夹中,当我在 Hadoop 中运行我的项目 jar 时,它显示此错误:

Error: 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 错误的情况下执行此命令?

最佳答案

私有(private)静态无效 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);

}

关于java - 如何使用外部 jar 运行 hadoop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126365/

相关文章:

java - Hibernate SQLQuery - 按名称获取对象

Java新手学习多态

linux - YarnApplicationState : ACCEPTED: waiting for AM container to be allocated, 启动并注册

java - 如何为已创建的数据库应用程序创建.jar 文件?

Java : No matter which method I use, 我无法将 double 四舍五入到小数点后 4 位

java - 来自 Java 代码的工作流程暂停

java - Q : Converting Avro to Parquet in Memory

jar - .jar 文件根本打不开

java - 使用 runtime.getRuntime().exec() 时 Jar 文件如何工作

java - 使用 RecyclerView 的正确方法?