友情链接:
上一篇文章中我们有提到如何通过AquilaInsight实时查看Quark的查询状态
通过查询列表,点击查询ID,我们就可以进入一个查询的执行详情页面,此时可以看到该查询的所有Job/Stage/Task的统计信息,Job列表/Stage列表/查询语句
点击job列表中的“+”可以看到Job对应的查询语句,点击“作业ID”可以进入Job执行的详情页面。
Job的详情页面又有Stage的列表,点击“+”可以查看该Stage的一些过滤/谓词下推等信息(参考:DBAService中Stage中的Stargate Context内容如何理解?)。
点击调度阶段ID进入Stage的详情页面,这里可以看到每个Task在那个执行器上执行,也可以看到这个这个执行器上在task执行时间范围内的GC耗时。
如果这个GC耗时很高,就需要看看这个执行器上的jmap。如果某个Task执行很久不结束,则需要打这个节点上的jstack,搜索Exeucutor关键字查看卡在那个地方。
下图是一个实际场景中GC严重导致的Task失败的样例:
通过上面的执行器ID,到“集群》执行器”页面,打jstack/jmap。
友情链接:
上一篇文章中我们有提到如何通过AquilaInsight实时查看Quark的查询状态
通过查询列表,点击查询ID,我们就可以进入一个查询的执行详情页面,此时可以看到该查询的所有Job/Stage/Task的统计信息,Job列表/Stage列表/查询语句
点击job列表中的“+”可以看到Job对应的查询语句,点击“作业ID”可以进入Job执行的详情页面。
Job的详情页面又有Stage的列表,点击“+”可以查看该Stage的一些过滤/谓词下推等信息(参考:DBAService中Stage中的Stargate Context内容如何理解?)。
点击调度阶段ID进入Stage的详情页面,这里可以看到每个Task在那个执行器上执行,也可以看到这个这个执行器上在task执行时间范围内的GC耗时。
如果这个GC耗时很高,就需要看看这个执行器上的jmap。如果某个Task执行很久不结束,则需要打这个节点上的jstack,搜索Exeucutor关键字查看卡在那个地方。
下图是一个实际场景中GC严重导致的Task失败的样例:
通过上面的执行器ID,到“集群》执行器”页面,打jstack/jmap。