我说的是从集群外部的机器提交hadoop作业。 所以情况就是这样, 在我的linux desktopn中,我在类路径中有所有hadoop jar文件。 通常在命令行中使用这种命令:
java -Dproc_jar -Xmx1000m -Dhadoop.log.dir=/cdh4/hadoop-2.0.0-mr1-cdh4.1.2/bin/../logs - Dhadoop.log.file=hadoop.log
-Dhadoop.home.dir=/cdh4/hadoop-2.0.0-mr1-cdh4.1.2/bin/.. -Dhadoop.id.str=zhaoyong - Dhadoop.root.logger=INFO,console
-Dhadoop.policy.file=hadoop-policy.xml -classpath
/cdh4/hadoop-2.0.0-mr1-cdh4.1.2 .......(here ignore lots of jar files)
org.apache.hadoop.util.RunJar
/cdh4/hadoop-2.0.0-mr1-cdh4.1.2/hadoop-examples-2.0.0-mr1-cdh4.1.2.jar
wordcount /golfnew.csv /testout
这可以工作,因为我的classpath中有core-site.xml,hdfs-site.xml,mapred-site.xml。 所以我的问题是,如果我想将作业提交到多个集群,我如何在命令行中传递配置,而不是在类路径中使用固定的xml文件? 它可以传递一个参数让自己找到xml文件,或传递所有配置对。
任何人都可以帮忙解决这个问题吗? 非常感谢!