2012-08-16 41 views

回答

3

有一个命令说明但它引发我的部署异常。所以我使用另一种方法。

你可以在很多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”)并记下上一个作业的名称(Completed Jobs部分)。提交脚本。刷新jobtracker页面并计算有多少个正在运行的作业,以及在您记录的那个之后完成多少个作业。现在您可以了解剩下多少工作要执行。 点击每项工作,查看其统计数据和进度。

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

5

我们在Twitter上遇到了同样的问题,因为我们的一些Pig脚本启动了数十个Map-Reduce作业,有时很难分辨出他们中的哪些人正在做什么,理解计划的效率,了解多少人会并行运行等

所以我们创建了Twitter的安布罗斯:https://github.com/twitter/ambrose

它旋转起来,让你一个很好的网络用户界面,显示作业DAG一点码头服务器,颜色齐全作业的节点,使你对工作进行统计,并告诉你每个工作正试图计算哪些关系。