与hadoop api configuration on the client machine有关。
如果我们尝试将客户端计算机上的mapred-site.xml保持尽可能少=仅指定mapred.job.tracker,则hadoop.jar内部的mapred-default会接管并放置不需要的属性,例如mapred.tasktracker.map.tasks.maximum = 2。然后,这些值与任务一起提交,并覆盖集群配置中的那些值:(
这里正确的方法是什么?您是否将文件从群集复制到客户端计算机?
最佳答案
我假设您引用的是job.xml文件中设置的属性。由于在启动时TaskTracker守护程序会读取mapred.tasktracker.map.tasks.maximum
属性,因此在客户端设置诸如mapred.tasktracker.map.tasks.maximum
之类的某些属性应该没有效果。尽管在job.xml中指定了mapred.tasktracker.map.tasks.maximum
,但它不是特定于作业的。
您如何验证属性已被覆盖?转到JobTracker页面(http:// jotracker:50030 / jobtracker.jsp)并验证是否已为TaskTracker覆盖了特定属性。
只是为了避免混淆,我将在客户端和节点上有单独的文件,并在其中具有最低限度的配置属性,而让其他属性采用默认值。
根据Hadoop : The Definitive Guide
关于hadoop - 客户端计算机上的mapred-site.xml必须与hadoop集群中的mapred-site.xml相同吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8635607/