我正在使用Eclipse在Windows中以伪分布式模式运行hadoop。我需要将一些选项[与jvm有关]传递给reducers。我试过使用:
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\mdapi</value>
</property>
但我没有成功。早些时候,当我使用本地独立模式时,我只需要在运行对话框中建议这些jvm选项,它们就可以很好地工作。但是在伪分布式模式下,甚至提示运行对话框中的这些参数都无法正常工作。
这是我在伪分布式模式下遇到的错误:
MDV_DATE not found....
java.lang.ClassCastException: com.itginc.tca.config.Config cannot be cast to com.itginc.tca.config.TcaConfig
以上这些错误是因为程序未获取mdapi和tcaenv文件。
最佳答案
要传递命令行参数,您需要使用-D name=value
。例如
您想要为所有任务配置临时目录,然后可以使用以下命令
hadoop jar JAR.jar mainClass -D mapreduce.task.tmp.dir="/path/to/temp/dir"
不要忘了在
-D
和name=value
之间放置空格然后您可以配置使用GenericOptionsParser
关于java - 在Eclipse中的Hadoop Mapreduce中将命令行选项传递给reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17844577/