SparkApp自动化分析和故障诊断
苏宁大数据平台的计算引擎主要包括三个组成部分:离线计算、流式计算、OLAP引擎。离线这块目前主要是依赖Spark和Hive来提供离线数据的分析和挖掘能力。 流式计算这块分为准实时计算和实时流计算。准实时计算主要基于SparkStreaming来满足数秒至分钟级的业务需求,对于实时流这块,目前我们苏宁大概有1200台Openstack虚拟机(400台实体机)组成的 39个Storm集群,并且在2014年就自研了Stor 《SparkApp自动化分析和故障诊断》 苏宁大数据平台的核心计算引擎涵盖了离线计算、流式计算和OLAP引擎,充分体现了大数据处理的多元化需求。在离线计算领域,Spark和Hive是主要的支撑,提供了强大的离线数据分析和挖掘功能。Spark以其高效、灵活的特点,成为大数据处理的重要工具。Hive则以其SQL接口和大规模数据处理能力,满足了对结构化数据的分析需求。 流式计算方面,苏宁采用Spark Streaming进行准实时计算,满足秒至分钟级别的业务需求。同时,基于Storm的自研Storm SQL引擎Libra,提供了对实时流数据的SQL接口,增强了实时处理的便捷性。近年来,随着Flink技术的发展,苏宁也开始逐步引入Flink,利用其强大的窗口计算和EventTime处理能力,解决更复杂的数据处理需求。 在OLAP引擎中,Druid和Elasticsearch(ES)并肩作战。Druid以其出色的实时计算能力,用于指标聚合计算,而ES凭借其快速的数据索引定位能力,适用于明细查询。这种结合使得苏宁能够高效地处理大量实时数据,满足各种业务场景的需求。 Spark在苏宁的大数据架构中扮演着至关重要的角色。为了提升Spark的服务化水平,苏宁搭建了CBT任务流调度平台,能统一管理Spark、Spark SQL及数据交换等多种任务,确保每天数万个任务的顺利执行。此外,还有专门针对Spark Streaming的SSMP平台,保证任务的稳定运行。同时,苏宁的在线机器学习平台基于Spark MLlib,支持GPU环境下的深度学习,提供了一站式的模型训练、优化和部署流程。 然而,随着Spark应用的广泛推广,遇到的问题也日益凸显。业务对Spark的理解不足、故障定位困难等问题挑战着平台的稳定性。为了解决这些问题,苏宁研发了名为“华佗”的自动化分析和故障诊断系统。该系统通过数据采集、华佗Server、数据存储和监控分析平台四个模块,收集并分析Spark、Yarn、宿主机等多方面的数据,实现对问题的快速定位和解决。 华佗系统采用Druid和ES作为数据存储,Druid擅长时序数据的OLAP分析,尤其适用于系统监控场景,能进行TopN、GroupBy等复杂查询。ES则用于存储事件数据,支持快速检索和异常报警。这样的设计使得监控和故障诊断更加高效,降低了维护成本,提升了平台的整体服务质量。 苏宁大数据平台的SparkApp自动化分析和故障诊断系统,是大数据平台服务化的重要进步,它不仅提升了故障处理效率,也为未来大数据处理的智能化、自动化奠定了基础。随着技术的不断发展,我们可以预见,大数据平台将更加智能,故障响应和解决将更加迅速,从而更好地服务于企业业务和决策支持。