Hadoop 地图通过Oozie减少

Hadoop 地图通过Oozie减少,hadoop,mapreduce,oozie,oozie-coordinator,Hadoop,Mapreduce,Oozie,Oozie Coordinator,如果我使用Oozie运行MapReduce作业,是否有关于将启动多少映射程序的特定数字? 是: 一个用于Oozie,一个用于map reduce作业或 一个用于Oozie,一个映射器用于每64MB块(默认块大小) 简短回答:Oozie通过向名为Oozie launcher的集群提交一个maponly作业来启动mapreduce作业同意@Dennis Jaheruddin. 我研究后的详细答案:Oozie的执行模型 Oozie的执行模型不同于 用户运行Hadoop作业的默认方法。当用户 从Hado

如果我使用Oozie运行MapReduce作业,是否有关于将启动多少映射程序的特定数字? 是:

  • 一个用于Oozie,一个用于map reduce作业或
  • 一个用于Oozie,一个映射器用于每64MB块(默认块大小)
  • 简短回答:Oozie通过向名为Oozie launcher的集群提交一个maponly作业来启动mapreduce作业同意@Dennis Jaheruddin.

    我研究后的详细答案:Oozie的执行模型

    Oozie的执行模型不同于 用户运行Hadoop作业的默认方法。当用户 从Hadoop边缘节点调用Hadoop、Hive或Pig CLI工具 相应的客户端可执行文件在配置的节点上运行 联系并向Hadoop集群提交作业。当同样的工作 通过Oozie工作流操作定义和提交,一切正常 不一样

    假设您正在使用上的Oozie CLI提交工作流作业 边缘节点。Oozie客户端实际上将工作流提交给Oozie 服务器,它通常运行在不同的节点上。不管在哪里 它运行时,Oozie服务器负责提交并运行 Hadoop集群上的底层MapReduce作业Oozie没有这样做 通过使用在Oozie上本地安装的标准客户端工具 服务器节点。相反,它首先提交一个名为 “launcher作业”,它依次使用 适当的客户端API

    Imp注意:Oozie启动器基本上是一个只运行一个映射程序的映射作业 Hadoop集群上的。此映射作业知道如何处理特定的 应该运行的操作,并使用 用于Hadoop、Pig等的库。这将导致其他 MapReduce作业根据需要进行旋转。这些Oozie工作称为 用Oozie的说法是“异步操作”。Oozie不经营这些 在自己的服务器上执行操作,但在Hadoop集群上启动这些操作 使用启动器作业。Oozie服务器“外包”启动器作业的原因 Hadoop集群的启动器是为了保护自己不受意外情况的影响 并将用户代码与其自身的服务隔离开来。之后 总之,Oozie可以访问一个很棒的分布式系统,其形式为 Hadoop集群。

    在Mapreduce操作中,您可以设置maptasks的数量,但不能保证,这将取决于以下描述

    地图的数量通常由输入的总大小决定, 即输入文件的块总数

    • 减速器设置数量-需求


    映射的数量通常由输入文件中DFS块的数量决定。尽管这会导致人们调整DFS块大小以调整贴图的数量。贴图的正确并行级别似乎在10-100个贴图/节点左右,尽管对于非常cpu的光照贴图任务,我们已经将其提高到300个左右。任务设置需要一段时间,因此最好至少花一分钟来执行映射程序,映射程序的数量取决于逻辑输入拆分的数量,而不取决于块的数量。您可以通过程序控制输入拆分的数量


    有关“输入拆分”如何影响映射器数量以及如何创建输入拆分的详细信息,请参阅此

    以上答案主要关注mapreduce作业所需的地图数量和减少量。不过,当您特别询问oozie时,我将通过oozie分享我在mapreduce(pig)上的经验

    解释 当您启动oozie工作流时,需要一个纱线应用程序。我不确定逻辑是什么,但这些应用程序似乎通常需要1个映射,偶尔需要2个映射

    除了上面提到的,您仍然需要相同数量的映射器和还原器来完成实际工作,就像您没有使用oozie一样。(如果您看到的数字与预期不同,这可能是因为您在调用脚本时在map或reduce属性上传递了特定参数)

    警告
    上述情况意味着,如果您有100个可用容器,并启动100个工作流(例如,通过在过去以100天的起始日期开始每日作业),则工作流可能会占用所有可用容器,而实际工作将无限期暂停。

    即使您指定了无法保证的映射器数量。地图任务的数量取决于输入分割。我认为问题主要在于oozie对地图数量的影响。因此,它不是@cricket_007所建议的重复,而且现有的答案似乎也没有充分涵盖该问题。如果答案是正确的,请您接受答案(由所有者接受),这样它将指向其他用户。Thxoh ok,除了生成的映射器数量,即天花板(块大小/64MB),Oozie本身是否需要一个单独的映射器?请注意,这与我的观察结果不一致。@RamPrasadG是的,按照我的回答,每个工作流通常需要1个映射器。@DennisJaheruddin:你说得对(+1)。我已经做了一些研究并更新了我的答案。输入拆分是根据块大小和文件是否可拆分来确定的,对吗?关于上面的评论,无论您使用Oozie还是不使用Oozie运行作业,您都应该看到相同的映射器/还原器计数。