2016-07-23 36 views
0

我在github上发现了以下项目https://github.com/fbukevin/hadoop-cooccurrence,它在hadoop中使用同现算法。在hadoop中运行同现算法

我正在使用虚拟化的Ubuntu 14.04,并使用此指令http://www.bogotobogo.com/Hadoop/BigData_hadoop_Install_on_ubuntu_single_node_cluster.php设法将hadoop安装为单节点群集。我是hadoop的新手,这是我第一次尝试用纱线运行程序。

我可以在命令行中执行命令yarn,但我不知道如何在yarn中运行共现算法。在说明它说,该程序可以用下面的命令

$ yarn jar <hadoop>.jar [pairs | stripes] <input_file>

于是,我就这样被使用:

$ yarn jar /home/vmiller/Downloads/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar pairs pg100.txt 
Exception in thread "main" java.lang.ClassNotFoundException: pairs 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:278) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:214) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

这肯定是不正确的,但我不知道该怎么办好该命令正确。不知何故,我必须告诉yarn使用位于hadoop-cooccurrence/src/main/java/cooc/Cooccurrence.javaCooccurrence.java,因为这个文件似乎是执行共现算法的文件。但是如何告诉yarn在输入文件中使用pairsstripes参数的文件?

回答

0

我实际上设法运行PROGRAMM并不需要指明类的名称。我的方法并没有错,因为tokiloutok提到我必须包含正确的jar文件。

在我可以执行命令之前,我必须将pg100.txt导入到HDFS中。

所以我有

hdfs dfsadmin -safemode leave 

停用名节点的安全模式,并导入与

hdfs dfs -put /home/vmiller/workspace/hadoop-cooccurrence/pg100.txt /user/hadoop/ 

所以文件,我终于可以运行

yarn jar target/cooc-1.0-SNAPSHOT.jar pairs pg100.txt 

无得到任何错误。

0

你应该给jar包括Cooccurrence类的jar的路径。 Jar位于目标文件夹(cooc-1.0-SNAPSHOT.jar)中。

你,因为它是建立在清单文件