论文部分内容阅读
为了全面落实《电信和互联网用户个人信息保护规定》和《电话用户真实身份信息登记规定》的要求,工信部下属的信息与通信研究院建设电信身份信息核查平台,为电信企业提供统一的身份信息核查。同时,为推动实施国家大数据战略,对身份信息核查业务进行实时的、多角度的大数据业务统计和平台监测,本论文从实际需求出发,结合新版本的Kafka 2.0.0、Spark Streaming 2.4.0、Elasticsearch 6.4.0,设计并开发一款实时大数据统计分析平台。本论文采用Spark Structured Streaming数据流处理系统作为基础,设计了一个基于Elasticsearch全文检索系统的实时大数据统计分析平台。该平台以Grizzly Nio Http接口作为数据入口,Kafka为数据管道,充分利用Kafka数据高速传输和负载均衡的能力。采用Spark Structured Streaming对数据进行流计算和批计算,即时输出简单的统计信息,并将处理后的结构化数据存储至Elasticsearch。本系统采用最新的Grizzly Nio Http接口和Java11,以代替目前通用的Netty Nio Http接口。Grizzly和Java11的组合提供了高质量应用服务器的结构化接口,能高速提供Http服务。系统采用Spark 2.0所提供新特性Spark Structured Streaming架构。该架构同时包含高效的流计算和批计算,能有效地对数据流进行实时处理和转发。其特有的端到端设计能有效减少网络IO读写延时,并且架构中有针对Kafka和Elasticsearch的专用优化接口。为了节省硬件资源,通过合适的方案设计和系统配置,Kafka、Spark Streaming和Elasticsearch三个核心组件将分别着重消耗不同的硬件资源,能同时部署在同一台服务器上,从而减少了服务器数量。系统架构简单,数据流向清晰,而且部署简单,开发方便,移植性强。本文在3台10核2.4GHz CPU,256GB内存,24块2TB 3.5寸SATA硬盘的服务器上部署本系统,并进行功能和性能测试。测试结果表明,该测试系统在每条数据227字节、40万条/s的数据输入中,能达到数据延迟不大于1s。在使用了Java11后,Full GC频率明显下降;在使用了Grizzly Nio后,相比通用的Netty Nio平台提速22%;在使用了Spark Structured Streaming后,入库延迟相比Spark Streaming减少了34%。