SparkSQL结合SparkStreaming,使用SQL完成实时计算中的数据统计

本文介绍了如何使用SparkSQL结合SparkStreaming,通过SQL进行实时日志数据统计。在60秒间隔内,统计PV、IP数和UV,并详细讲述了环境部署、程序代码编写、运行及查看结果的步骤。重点在于利用SQL简化实时计算中的复杂逻辑。
摘要由CSDN通过智能技术生成

SparkSQL结合SparkStreaming,使用SQL完成实时计算中的数据统计

关键字:SparkSQL、Spark Streaming、SQL、实时计算

Flume+Kafka+SparkStreaming已经发展为一个比较成熟的实时日志收集与计算架构,利用Kafka,即可以支持将用于离线分析的数据流到HDFS,又可以同时支撑多个消费者实时消费数据,包括SparkStreaming。然而,在SparkStreaming程序中如果有复杂业务逻辑的统计,使用scala代码实现起来比较困难,也不易于别人理解。但如果在SparkSteaming中也使用SQL来做统计分析,是不是就简单的多呢?

本文介绍将SparkSQL与SparkStreaming结合起来,使用SQL完成实时的日志数据统计。SparkStreaming程序以yarn-cluster模式运行在YARN上,不单独部署Spark集群。

环境部署

Hadoop-2.3.0-cdh5.0.0(YARN)

spark-1.5.0-bin-hadoop2.3

kafka_2.10-0.8.2.1

另外,还编译了SparkStreaming用于读取Kafka数据的插件:

spark-streaming-kafka_2.10-1.5.0.jar

相关环境的部署本文不做介绍,请参考文章最后的相关阅读。

实时统计需求

以60秒为间隔,统计60秒内的pv,ip数,uv

最终结果包括:

时间点:pv:ips:uv

原始日志格式

2015-11-11T14:59:59|~|xxx|~|202.109.201.181|~|xxx|~|xxx|~|xxx|~|B5C96DCA0003DB546E7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值