作者:李栋
编辑:Sammi
众所周知,Apache Kylin 提供对PB规模数据集进行高速OLAP分析的能力,查询性能可以达到秒级甚至亚秒级,是Hadoop大数据生态圈的重要一员。但是,大数据系统大都架构复杂、组件耦合度高、使用场景多样,如果遇到系统故障,可能需要分析很多节点和服务的日志才能找到问题根源,Apache Kylin 也不例外。如何快速定位故障根源,并找到解决办法,就是本文讨论的话题。
关于系统故障
Apache Kylin中常见的故障一般是查询失败、构建Cube失败、界面操作报错、服务启动失败等等,这些异常往往给业务人员和运维人员带来或多或少的影响。想要解决问题,可能需要查看Kylin日志、Map Reduce日志、HBase日志等等。以构建Cube为例,任务的调度以及字典生成发生在Kylin节点,需要查看Kylin日志,而预计算过程是一个Map Reduce任务,需要查看Map Reduce的运行日志。
运维人员需要掌握所有日志的存放位置(如Kylin、Map Reduce等),并了解日志记录和异常报错的表述涵义,才能高效地定位问题和解决问题,这并不是一个容易的事情——而Kyligence Robot (KyBot) 擅长解决这一问题。
使用KyBot定位异常
Kyligence Robot (KyBot) 是为Apache Kylin及其商业版KAP提供在线诊断、优化及服务的平台。通过分析Apache Kylin的日志等信息,为用户提供可视化仪表盘、系统优化、故障排查、知识库等自助式服务。关于KyBot的使用可以参考文章[1]。
登录进入KyBot后,通过左侧菜单进入“故障”-“异常”仪表盘,即可看到整个系统的异常统计指标,如图1所示。
图 1 异常仪表盘
在图1中,A区域代表一个时间段内系统出现的异常个数,并按照元数据、构建、查询等模块进行了统计。右侧B区域代表每日的异常统计,帮助用户快速定位突变和变化趋势,定位不稳定的时间段。C区域列出了所有的异常明细,包含异常的发生时间、模块和报错信息,通过单击右侧按钮,还能快速查看异常所在的日志片段,如下图所示。
图 2 异常日志
查询失败
如果遇到的异常是查询失败,还可以在查询仪表盘快速找到该查询并进行分析。单击左侧导航栏的“查询”打开查询仪表盘,页面下方查询列表处可以看到所有的失败查询,结合搜索功能,可以快速定位到失败的查询。
单击右侧按钮进入查询详情页,如图3所示,中间的“查询历史”区域代表这条SQL语句的多次执行历史,可快速看出这条SQL是否有执行成功的历史,为问题定位提供线索。
图 3 查询详情页
单击右上角的日志按钮,可以查看这次查询的日志,这些都是从原始日志文件进行切分和过滤得到的。当查询并发度较高,原始日志中各个线程交错,肉眼无法分析,通过此处可以事半功倍。查询详情页还可以辅助性能调优,详情参考文章[2]。
图 4 查看查询日志
构建失败
如果遇到的异常是构建Cube失败,还可以在任务仪表盘快速找到该任务并进行分析。单击左侧“任务”进入任务仪表盘,页面下方会列出所有任务历史,根据状态等信息可以快速找到该任务,并单击右侧按钮进入任务详情页。
图 5任务详情页
如上图所示,左侧区域是整个构建任务生命周期的时间线,可以很明显地看到红色的出错步骤。这一步是一个Map Reduce任务,单击红色泳道,再单击右侧的“MR”链接,可以跳转到Map Reduce任务详情页。
图 6 Map Reduce任务详情
在Map Reduce详情页有4个选项卡,其中“Log”选项卡包含了这个Map Reduce任务的日志,“Configuration”选项卡包含任务的配置项。基本上所有需要的信息都在这里,想要快速分析问题就不难了。任务详情页还可以辅助性能调优,详情参考文章[3]。
知识库
除了构建和查询,还有很多异常涉及环境、部署、第三方集成等方面,有的异常和大数据平台的架构或部署方案有关,这些问题都可以到知识库中检索。
知识库包含了Apache Kylin核心成员总结和撰写的知识问答、案例及最佳实践,用户可以通过关键词搜索,获取相应的问答及文章。在左侧导航菜单选择“帮助中心”-“知识库”即可搜索,因为所有的文章都是英文撰写,所以推荐使用英文关键词或异常报错信息进行检索,如下图所示。
图 7 知识库检索页
图 8 知识库检索结果
总结
以Apache Kylin为代表的大数据技术给用户带来了诸多便利,也给开发者带来了很多挑战。合理地使用工具是开发者提高工作效率最有效的方式。Kyligence Robot作为专业、智能的诊断平台,是解决Apache Kylin问题的不二之选。如果你也有类似困扰,不妨参考本文一试。
参考文章
[1]KyBot快速入门指南