与hadoop api configuration on the client machine相关。
如果我们尝试尽可能减少客户端计算机上的mapred-site.xml =仅指定mapred.job.tracker,那么hadoop.jar内的mapred-default将接管并放置不需要的属性,例如mapred.tasktracker.map.tasks.maximum = 2。然后,这些值随任务一起提交,并覆盖集群配置中的值:(
这里的方法是什么?您是否将群集中的文件复制到客户端计算机中?
答案 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守护程序设置。然而,这不是一个严格的规则,所以 在某些情况下,您可能需要诉诸反复试验,甚至阅读来源。