0

我在使用 Eclipse 的 Windows 中以伪分布式模式运行 hadoop。我需要将一些选项 [ jvm 相关 ] 传递给减速器。我试过使用:

<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 文件。

4

2 回答 2

0

要传递命令行参数,您需要使用-D name=value. 例如,您想为所有任务配置临时目录,然后可以使用以下命令

hadoop jar JAR.jar mainClass -D mapreduce.task.tmp.dir="/path/to/temp/dir"

不要忘记在 and 之间放置空格-D然后name=value 您可以使用GenericOptionsParser进行配置

于 2013-07-25T05:09:09.030 回答
0

而不是将 mapred.xml 中的“mapred.reduce.child.java.opts”的值添加到“-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\ mdapi”我将“mapred.child.java.opts”的值更改为“-Dtca.TCA_PROPERTIES=C:\Users\uagrawal\workspace\TCAenv -DMDAPI=C:\Users\uagrawal\workspace\mdapi”。

我认为这样做的原因是因为在伪分布式模式下,任务跟踪器的每个子进程都有自己的 jvm,最好设置子 jvm 的属性。

于 2013-07-25T17:33:04.097 回答