【问题标题】:How to check the overall progress of PIG job如何查看 PIG 作业的整体进度
【发布时间】:2012-08-16 12:05:53
【问题描述】:

一个 pig 脚本可以翻译成多个 MR 作业,我想知道是否有一个界面或方法可以查看整个 PIG 脚本的进度,例如计划、执行了多少作业等。

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    我们在 Twitter 也遇到了同样的问题,因为我们的一些 Pig 脚本启动了数十个 Map-Reduce 作业,有时很难判断其中哪些在做什么,关于计划效率的原因,了解有多少会运行并行等。

    所以我们创建了 Twitter Ambrose:https://github.com/twitter/ambrose

    它启动了一个小型码头服务器,为您提供了一个漂亮的 Web ui,显示作业 DAG,在作业完成时为节点着色,为您提供有关作业的统计信息,并告诉您每个作业试图计算哪些关系。

    【讨论】:

      【解决方案2】:

      有一个命令 illustrate,但它在我的部署中引发了异常。所以我使用了另一种方法。

      您可以通过使用 explain 命令并查看解释报告末尾的“物理计划”部分来获取有关计划多少 MR 作业的信息.要获取脚本的 MR 作业数,我执行以下操作:

      ./pig -e 'explain -script ./script_name.pig' > ./explain.txt
      grep MapReduce ./explain.txt | wc -l
      

      现在我们计划了 MR 作业的数量。要监控脚本执行,在运行之前,您需要访问 Hadoop 的 jobtracker 页面(通过“http://(IP_or_node_name):50030/jobtracker.jsp”)并记下最后一个作业的名称(已完成作业部分)。提交脚本。刷新 jobtracker 页面并计算有多少正在运行的作业以及在您记录的作业之后完成了多少。现在您可以了解还有多少作业需要执行。 单击每个作业并查看其统计信息和进度。

      一个更简单的方法是在一个小数据集上运行脚本,记下作业的数量,它会在脚本执行后显示在控制台输出中。由于 pig 不会更改其执行计划,因此与大数据集相同。通过在 Hadoop 的 jobtracker 页面上查看每个作业的统计信息(通过“http://(IP_or_node_name):50030/jobtracker.jsp”),您可以了解每个 MR 作业所花费的时间比例。比您可以使用它来近似地插入大型数据集的执行时间。如果您有倾斜的数据和一些笛卡尔积,执行时间预测可能会变得很棘手。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-21
        • 2019-10-31
        • 1970-01-01
        • 2015-04-02
        • 2016-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多