本节介绍如何使用Dr.Elephant
来进行任务查看,分析,搜索,比较等。
Dr.Elephant
的启动首页正如你所见
这个页面包含了集群最近的统计信息。列出了最近24小时分析过的作业数量,可进行优化的作业数量和待优化的作业数量。
这一部分列出了最近一段时间分析的任务
搜索页允许你通过一下选项过滤搜索作业和工作流:
Dr.Elephant
诊断完以后,就会生成一份详细的诊断报告,其中就包括该任务的待优化等级。我们可以基于待优化等级搜索任务。例如,我们在待优化等级输入框中输入”severe(严重)”,搜索结果就会包含至少被一个启发式算法诊断为”severe”的所有任务。在该例子中,搜索时还可以同时指定启发式算法,那么搜索结果就只包含被该启发式算法诊断为”severe”的所有任务。点击控制台或者搜索页中的任意一个作业,可以看到作业详情。
map
和reduce
的task
信息。Azkaban调度器上
,指向这个任务的执行链接。Dr.Elephant
每项作业的计算指标,目前显示使用的资源,浪费的资源,运行时间和等待时间信息。当一个作业被Dr.Elephant
分析时,Dr.Elephant
会运行所有的启发式算法来分析这个任务。每个启发式算法都会对该任务计算出一个待优化等级,这个等级可能会是”无(none)”、”中等(moderate)”、”严重(severe)”或者”危急(critical)”。在每个任务的详细分析页面,都会展示它的待优化等级以及其他分析结果。如果任务的待优化等级不是”无(none)”时,表明某些启发式算法的诊断结果认为这个任务需要优化,同时也会提供相应的链接(帮助页面)来阐述该启发式算法提出的优化建议。开发者可以通过这个链接来帮助自己优化任务。
通过这个比较页面,你可以比较两个不同的作业流执行情况。当我们比较两次作业流的执行时,相同的作业会做出比较并在顶部展示。其他的不同的作业,会按照作业流的顺序依次在下面展示。
历史作业页面展示了每个特定任务近期所有执行情况的比较图
我们可以在历史任务页面的搜索框中输入任务的ID或者Azkaban
的URL来搜索特定的任务。点击搜索,就会得到该任务的历史执行情况的展示。在前面提到的任务详情页面中,也有链接可以跳转到该任务的历史执行情况页面。这个页面中展示的折线图代表了该任务在历史上每次执行性能的一个打分。
执行性能打分图是一个折线图。X轴代表时间,Y轴代表分数。当我们将鼠标停留在折线图中的某个点上时,会看到有弹框弹出。弹框中列出了该任务在本次执行中造成性能问题的Top 3的阶段。执行性能的分数是通过一个简单的公式计算出来的,越低的分数表明该任务执行性能越好。
耗时和资源图表,X轴代表时间,Y轴代表资源。当鼠标悬停在其中一个数据点上时,该特定执行的指标会显示为弹出窗口。
在性能打分折线图的下方,可以看到该任务流在近期每次执行的表格展示。第一列是每次执行的时间,点击每个时间,都能跳转到任务流在调度器中的执行详情页面。接下来的每一列都代表了任务流执行中的一个任务。在图表中的每个任务阶段,都包含了若干种颜色的圆点。当我们将鼠标停留在某个任意颜色的圆点上时,会弹出一个弹框展示所有的启发式算法,以及这些算法对该任务的待优化等级的分析结果。
在图表下方,您可以看到图表数据点数据的表格展示。每行代表作业的特定执行,列代表作业的mapreduce
阶段。每个mapreduce
列都分为更多列,每列代表一个度量。
在历史任务流页面,展示了每个特定任务流近期所有执行情况的比较。
我们可以在历史任务页面的搜索框中输入任务的ID或者Azkaban
的URL来搜索特定的任务。点击搜索,就会得到该任务的历史执行情况的展示。在前面提到的任务详情页面中,也有链接可以跳转到该任务的历史执行情况页面。这个页面中展示的折线图代表了该任务在历史上每次执行性能的一个打分。
执行性能打分图是一个折线图。X轴代表时间,Y轴代表分数。当我们将鼠标停留在折线图中的某个点上时,会看到有弹框弹出。弹框中列出了该任务在本次执行中造成性能问题的Top 3的阶段。执行性能的分数是通过一个简单的公式计算出来的,越低的分数表明该任务执行性能越好。
耗时和资源图表,X轴代表时间,Y轴代表资源。当鼠标悬停在其中一个数据点上时,该特定执行的指标会显示为弹出窗口。
在性能打分折线图的下方,可以看到该任务流在近期每次执行的表格展示。第一列是每次执行的时间,点击每个时间,都能跳转到任务流在调度器中的执行详情页面。接下来的每一列都代表了任务流执行中的一个任务。在图表中的每个任务阶段,都包含了若干种颜色的圆点。当我们将鼠标停留在某个任意颜色的圆点上时,会弹出一个弹框展示所有的启发式算法,以及这些算法对该任务的待优化等级的分析结果。
在Dr.Elephant
UI首页点击Help
可以跳转到帮助页面。还可以通过其他方式跳转到帮助页面,比如通过点击UI中任务详情页的explain
链接(当启发式算法诊断结果为moderate
、severe
或者critical
时出现这个链接)。在帮助页面,可以看到所有的启发式算法的介绍,以及这些启发式算法给出的优化建议。点击某个特定的启发式算法,可以看到该启发式算法得出的详细优化建议。上面图片中,展示了Mapper memory
启发式算法给出的优化建议。
待优化等级代表了该任务的性能,表明了该任务在性能上需要优化的迫切程度。我们通过参数可以配置每个启发式算法的一些阈值,启发式算法给每个任务的诊断分析,都会得出一个待优化等级。待优化等级共有5个,下面按照待优化的迫切性降序排序给出:CRITICAL > SEVERE > MODERATE > LOW > NONE
Severity | Color | Description |
---|---|---|
CRITICAL | The job is in critical state and must be tuned | |
SEVERE | There is scope for improvement | |
MODERATE | There is scope for further improvement | |
LOW | There is scope for few minor improvements | |
NONE | The job is safe. No tuning necessary |