我在Windows上安装了Hadoop单节点并试图用它运行我的jar:
hadoop jar MYJAR -D mapreduce.job.user.classpath.first=true -D mapreduce.task.timeout=0 -D mapreduce.map.speculative=false -D mapreduce.map.memory.mb=8300 -D mapred.child.java.opts="-Xmx8000m -Xms8000m -Xss256m" ....
但它说
Error: Could not find or load main class org.apache.hadoop.util.RunJar
我没有HADOOP_CLASSPATH
设置,也不知道如何设置它。
更新1
设置HADOOP_CLASSPATH
和CLASSPATH
指向hadoop-common-2.8.3.jar
没有帮助。
更新2
示例程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'
效果很好!
是不是我的JAR依赖于错误的hadoop?
更新3
λ hadoop classpath
D:\Apps\hadoop-2.8.3\etc\hadoop;D:\Apps\hadoop-2.8.3\share\hadoop\common\lib\*;D:\Apps\hadoop-2.8.3\share\hadoop\common\*;D:\Apps\hadoop-2.8.3\share\hadoop\hdfs;D:\Apps\hadoop-2.8.3\share\hadoop\hdfs\lib\*;D:\Apps\hadoop-2.8.3\share\hadoop\hdfs\*;D:\Apps\hadoop-2.8.3\share\hadoop\yarn\lib\*;D:\Apps\hadoop-2.8.3\share\hadoop\yarn\*;D:\Apps\hadoop-2.8.3\share\hadoop\mapreduce\lib\*;D:\Apps\hadoop-2.8.3\share\hadoop\mapreduce\*;D:\Apps\hadoop-2.8.3\share\hadoop\common\hadoop-common-2.8.3.jar;