我正在尝试在 Hadoop 上运行 MapReduce 作业,但遇到错误,并且不确定出了什么问题。我必须传递我的映射器所需的库罐子。
我正在终端上执行以下命令:
hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar /home/hadoop/vardtst.jar -libjars /home/hadoop/clui.jar -libjars /home/hadoop/model.jar gutenberg ou101
我收到以下异常:
在 java.net.URLClassLoader$1.run(URLClassLoader.java:202)
在 java.security.AccessController.doPrivileged(本机方法)
在 java.net.URLClassLoader.findClass(URLClassLoader.java:190)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:306)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
在 java.lang.Class.forName0(本机方法)
在 java.lang.Class.forName(Class.java:247)
在 org.apache.hadoop.util.RunJar.main(RunJar.java:149)
请帮助..谢谢
另外值得注意的是微妙但重要的一点:为运行分布式 MapReduce 任务的 JVM 和运行作业客户端的 JVM 指定附加 JAR 的方式非常不同。
$ export LIBJARS=/path/jar1,/path/jar2
$ export HADOOP_CLASSPATH=/path/jar1:/path/jar2
$ hadoop jar my-example.jar com.example.MyTool -libjars ${LIBJARS} -mytoolopt value
See: http://grepalex.com/2013/02/25/hadoop-libjars/ http://grepalex.com/2013/02/25/hadoop-libjars/
不正确的 -libjars 行为的另一个原因可能是自定义 Job 类的错误实现和初始化。
- 职位类别must实现工具接口
- 配置类实例必须通过调用 getConf() 来获取,而不是创建新实例;
See: http://kickstarthadoop.blogspot.ca/2012/05/libjars-not-working-in-custom-mapreduce.html http://kickstarthadoop.blogspot.ca/2012/05/libjars-not-working-in-custom-mapreduce.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)