hadoop中的java运行共生算法
我在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新手,这是我第一次尝试用Thread运行程序
我可以在命令行中执行命令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.java
的Cooccurrence.java
,因为这个文件似乎是执行共现算法的文件。但是我如何告诉Thread在输入文件上使用带有pairs
和stripes
参数的文件呢
# 1 楼答案
实际上我成功地运行了这个程序。我的方法并没有错,正如tokiloutok提到的,我必须包含正确的jar文件
在执行命令之前,我必须将
pg100.txt
导入HDFS因此,我必须使用禁用名称节点的安全模式
并使用
这样我就可以跑了
没有任何错误
# 2 楼答案
您应该给jar提供jar的路径,包括Cooccurrence类。 Jar位于目标文件夹(cooc-1.0-SNAPSHOT.Jar)中
在清单文件中设置类名时,不需要指明类名