Java 使用MapReduce在Hadoop上测试JNI

Java 使用MapReduce在Hadoop上测试JNI,java,hadoop,java-native-interface,Java,Hadoop,Java Native Interface,[我尝试使用MapReduce在Hadoop上运行JNI程序。下面是命令: bin/hadoop-jar/Users/ming/Desktop/mctest/mctest.jar-files/Users/ming/Desktop/mctest/libgenerateradom.jnilib-mchdfs://localhost:9000/Users/ming/seeds_shuffle.txt hdfs://localhost:9000/Users/ming/output jnilibIt是Ma

[我尝试使用MapReduce在Hadoop上运行JNI程序。下面是命令:

bin/hadoop-jar/Users/ming/Desktop/mctest/mctest.jar-files/Users/ming/Desktop/mctest/libgenerateradom.jnilib-mchdfs://localhost:9000/Users/ming/seeds_shuffle.txt hdfs://localhost:9000/Users/ming/output

jnilibIt是Mac OS X上的一个文件,就像。所以Linux上的文件应该和jar文件一起发送到tasknode。但是我在下面得到了一个错误:]

有人能帮忙吗? 谢谢。

改用:

bin/hadoop jar /Users/ming/Desktop/mctest/mctest.jar \
<main-class> \
-files /Users/ming/Desktop/mctest/libGenerateRandom.jnilib \
mc \
hdfs://localhost:9000/Users/ming/seeds_shuffle.txt \     
hdfs://localhost:9000/Users/ming/output
其中的格式应为com.you.mainlunner


这是因为它希望包出现在任何附加参数之前,例如-file。

错误是:线程主java.lang.ClassNotFoundException中的异常:java.net.URLClassLoader$1.runURLClassLoader.java:372 at java.net.URLClassLoader$1.runURLClassLoader.java:361 atjava.net.URLClassLoader.findClassURLClassLoader.java:360在java.lang.ClassLoader.LoadClassLoader.java:424在java.lang.ClassLoader.LoadClassLoader.java:357在java.lang.Class.ForName0在java.lang.Class.forNameClass.java:340在org.apache.hadoop.util.RunJar.mainRunJar.java:153