客户端计算机上的mapred-site.xml必须与hadoop集群中的mapred-site.xml相同?

时间:2011-12-26 12:09:36

标签: hadoop hdfs

hadoop api configuration on the client machine相关。

如果我们尝试尽可能减少客户端计算机上的mapred-site.xml =仅指定mapred.job.tracker,那么hadoop.jar内的mapred-default将接管并放置不需要的属性,例如mapred.tasktracker.map.tasks.maximum = 2。然后,这些值随任务一起提交,并覆盖集群配置中的值:(

这里的方法是什么?您是否将群集中的文件复制到客户端计算机中?

1 个答案:

答案 0 :(得分:1)

  

hadoop.jar内部的mapred-default接管,并放置不需要的属性,例如mapred.tasktracker.map.tasks.maximum = 2。然后使用ttask提交这些值,并覆盖集群配置中的值:(

我假设您正在引用job.xml文件中设置的属性。在客户端设置某些属性(例如mapred.tasktracker.map.tasks.maximum)应该没有效果,因为启动时TaskTracker守护程序会读取mapred.tasktracker.map.tasks.maximum属性。虽然在job.xml中指定了mapred.tasktracker.map.tasks.maximum,但它不是特定于作业的。

您是如何验证属性是否已被覆盖?转到JobTracker页面(http:// jotracker:50030 / jobtracker.jsp)并验证是否已为TaskTracker覆盖特定属性。

  

这里的方法是什么?您是否将群集中的文件复制到客户端计算机中?

只是避免混淆,我会在客户端和节点上有单独的文件,并在其中具有最低要求的配置属性,并让其他属性采用默认值。

根据Hadoop : The Definitive Guide

  

请注意,在客户端配置中设置某些属性无效。对于   例如,如果在您的作业提交中设置了mapred.tasktracker.map.tasks.maximum   期望它会改变运行你的工作的任务工作人员的任务槽的数量,然后你会感到失望,因为这个属性只有荣幸   如果在tasktracker的mapred-site.html文件中设置。通常,您可以告诉组件   其中一个属性应该由其名称设置,所以mapred.task的事实   tracker.map.tasks.maximum以mapred.tasktracker开头,为您提供线索   仅为tasktracker守护程序设置。然而,这不是一个严格的规则,所以   在某些情况下,您可能需要诉诸反复试验,甚至阅读来源。