SparkSQL結(jié)合SparkStreaming,使用SQL完成實(shí)時(shí)計(jì)算中的數(shù)據(jù)統(tǒng)計(jì) – lxw的大數(shù)據(jù)田地
http://lxw1234.com/archives/2015/11/552.htm
關(guān)鍵字:SparkSQL、Spark Streaming、SQL、實(shí)時(shí)計(jì)算
Flume+Kafka+SparkStreaming已經(jīng)發(fā)展為一個(gè)比較成熟的實(shí)時(shí)日志收集與計(jì)算架構(gòu),利用Kafka,即可以支持將用于離線分析的數(shù)據(jù)流到HDFS,又可以同時(shí)支撐多個(gè)消費(fèi)者實(shí)時(shí)消費(fèi)數(shù)據(jù),包括SparkStreaming。然而,在SparkStreaming程序中如果有復(fù)雜業(yè)務(wù)邏輯的統(tǒng)計(jì),使用scala代碼實(shí)現(xiàn)起來(lái)比較困難,也不易于別人理解。但如果在SparkSteaming中也使用SQL來(lái)做統(tǒng)計(jì)分析,是不是就簡(jiǎn)單的多呢?
本文介紹將SparkSQL與SparkStreaming結(jié)合起來(lái),使用SQL完成實(shí)時(shí)的日志數(shù)據(jù)統(tǒng)計(jì)。
SparkStreaming程序以yarn-cluster模式運(yùn)行在YARN上,不單獨(dú)部署Spark集群。
//實(shí)時(shí)統(tǒng)計(jì)需求
以60秒為間隔,統(tǒng)計(jì)60秒內(nèi)的pv,ip數(shù),uv
最終結(jié)果包括:
時(shí)間點(diǎn):pv:ips:uv
原始日志格式

每條日志包含7個(gè)字段,分隔符為|~|,其中,第3列為ip,第7列為cookieid。假設(shè)原始日志已經(jīng)由Flume流到Kafka中。
Spark Streaming+Flume對(duì)接實(shí)驗(yàn) – lxw的大數(shù)據(jù)田地
http://lxw1234.com/archives/2015/05/217.htm