我总是按照以下方式从本地文件系统执行作业
hadoop jar /home/usr/jar/myjar.jar com.test.TestMain
我应该如何执行同样的命令,但是myjar.jar文件存在于HDFS中?
类似以下命令:
hadoop jar hdfs:///home/usr/jar/myjar.jar com.test.TestMain
当然,这并不起作用...
我总是按照以下方式从本地文件系统执行作业
hadoop jar /home/usr/jar/myjar.jar com.test.TestMain
hadoop jar hdfs:///home/usr/jar/myjar.jar com.test.TestMain
hadoop fs -copyToLocal hdfs:///home/usr/jar/myjar.jar /tmp/myjar.jar && hadoop jar /tmp/myjar.jar com.test.TestMain
查看执行Hadoop jar文件的bin/hadoop
脚本时,它使用了以下条件--
elif [ "$COMMAND" = "jar" ] ; then
CLASS=org.apache.hadoop.util.RunJar
RunJar
类来执行jar文件。
如果你看到了RunJar类,支持的参数为--。RunJar jarFile [mainClass] args...
在RunJar类中,可以使用以下代码访问jarFile--
int firstArg = 0;
String fileName = args[firstArg++];
File file = new File(fileName);
File
类可以访问它。