我在github上发现了以下项目https://github.com/fbukevin/hadoop-cooccurrence,它在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
使用Cooccurrence.java
中的hadoop-cooccurrence/src/main/java/cooc/Cooccurrence.java
,因为此文件似乎是执行共生算法的文件。但是如何告诉yarn使用此文件与输入文件上的pairs
和stripes
参数?
答案 0 :(得分:0)
你应该给jar提供jar的路径,包括Cooccurrence类。 Jar在目标文件夹中(cooc-1.0-SNAPSHOT.jar)。
您不需要指明在清单文件中设置的班级名称
答案 1 :(得分:0)
我实际上设法运行该程序。我的方法并没有错,因为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
没有任何错误。