我正在尝试为map reduce作业提交期间的mapper/reducer内存配置内存,如下所示:
hadoop jar Word-0.0.1-SNAPSHOT.jar -Dmapreduce.map.memory.mb=5120 com.test.Word.App /tmp/ilango/input /tmp/ilango/output/
上面的命令有什么错误吗?我得到以下例外。看起来我们需要放置jar文件还是需要在hadoop中配置使用-d选项。提前谢谢。
Exception in thread "main" java.lang.ClassNotFoundException: -Dmapreduce.map.memory.mb=5120
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:270)
at org.apache.hadoop.util.RunJar.main(RunJar.java:205)
3条答案
按热度按时间zzlelutf1#
如果您正在使用mvn并将主类添加到清单中,在本例中
com.test.Word.App
,你的命令-D mapreduce.map.memory.mb=5120
将作为输入。所以,只要去掉
com.test.Word.App
线yqhsw0fo2#
运行mr作业的命令是
hadoop jar类名输入输出
按照你的命令
hadoop jar jarname-d mapreduce.map.memory.mb=5120类名输入输出
hadoop检查名为“-dmapreduce.map.memory.mb=5120”的驱动程序类。这就是为什么它显示java.lang.ClassNotFoundException。
-d选项应该在驱动程序类之后提供。
尝试使用下面的命令。
希望这能解决你的问题。
xsuvu9jc3#
看来你在那之后少了一个空位
-D
尝试-D mapreduce.map.memory.mb=5120
-dproperty=value和-d property=value之间存在差异。第一个设置jvm系统属性,第二个设置hadoop配置属性。引用《hadoop权威指南》一书:
-d property=value将给定的hadoop配置属性设置为给定的值。覆盖配置中的任何默认属性或站点属性,以及通过-conf选项设置的任何属性。