-jar 会启动java运行jar包,这时候会报各种类没有定义的异常
打开 haoop在bin的脚本文件hadoop.sh
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"
这句话实际上就是最终执行你haoop指令的东西,看到没,都是用java启动的
如果你参数是-jar,java就启动这个包,然后-classpath后面配置的东西全都会无效!
所以不要用-jar,一定不要有这个该死的"-"
而是用jar来启动
当用jar启动时,观察脚本,实际上hadoop启动了一个叫Runjar的东西
elif [ "$COMMAND" = "jar" ] ; then
CLASS=org.apache.hadoop.util.RunJar
HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
这个玩意能把-classpath配置的东西用上,从而不会给你报一堆类没有定义的错误!