1.5.3 Spark在西班牙电信的应用
西班牙电信(Telefónica,S.A.)是西班牙的一家电信公司。这是全球第五大固网和移动通信运营商。
Telefónica成立于1924年。在1997年电信市场自由化之前,Telefónica是西班牙唯一的电信运营商,至今仍占据主要的市场份额(2004年超过75%)。
西班牙电信的数据与日俱增,随着数据的增长,网络安全成为一个不可忽视的问题而凸显。DDoS攻击、SQL注入攻击、网站置换、账号盗用等网络犯罪频繁发生。如何通过大数据分析,预防网络犯罪与正确检测诊断成为迫在眉睫的问题。
传统的应对方案是,采用中心化的数据存储,收集事件、日志和警告信息,对数据分析预警,并对用户行为进行审计。但是随着犯罪多样化与数据分析技术越来越复杂,架构已经演变为中心架构服务化,并提供早期预警、离线报告、趋势预测、决策支持和可视化的大数据网络安全分析预警策略。
西班牙电信采用Stratio公司提供的含有Spark的数据分析解决方案构建自身的网络安全数据分析栈,将使用的大数据系统缩减了一半,平台复杂性降低,同时处理性能成倍提升。
整体架构如图1-12所示。
在架构图中,最顶层通过Kafka不断收集事件、日志、预警等多数据源的信息,形成流数据,完成数据集成的功能。接下来Kafka将处理好的数据传输给Storm,Storm将数据混合与预处理。最后将数据存储进Cassandra、Mongo和HDFS进行持久化存储,使用Spark进行数据分析与预警。
在数据收集阶段:数据源是多样化的,可能来自DNS日志、用户访问IP、社交媒体数据、政府公共数据源等。Kafka到数据源拉取不同数据维度数据。
在数据预处理阶段:通过Storm进行数据预处理与规范化。在这个阶段为了能够实时预警,采用比Spark Streaming实时性更高的Storm进行处理。
在数据批处理阶段:数据经过预处理阶段之后将存储到Cassandra中持久化。开发人员通过Cassandra进行一些简单的查询和数据报表分析。对于复杂的数据分析,需要使用Spark来完成。Spark+Cassandra的架构结合了两个系统的优势。Cassandra的二级索引能够加速查询处理。
Spark对机器学习和图计算等复杂数据分析应对自如,二者组合能够应对常见和复杂的数据分析负载。
图1-12 西班牙电信数据分析平台