Kafka + Slipstream 實現網站點擊量統計
實驗目的
掌握StreamSQL的基本用法。
掌握Slipstream流處理的基本過程。
理解輸入流表、衍生流表、結果表和流任務的關係。
- Kafka topic 創建
- 創建輸入流表
- 創建衍生流表
- 創建inceptor結果表,存儲流數據處理結果
- 啓動流任務
- 向Kafka topic 發送數據 通過console producer 向kafka topic 發送數據
- 查看inceptor 結果表中的流處理結果
kafka topic 創建
cd TDH_Client/kafka/bin
./kafka-topics --create --topic topic_log_xueshen --zookeeper ip1:2181,ip2:2181,ip3:2181
--partitions 4 --replication-factor 2
./kafka-topic.sh --list --zookeeper ip1:2181,ip2:2181,ip3:2181
2 創建輸入流表
create stream log_xueshen(ip string,url string,time timestamp) row format
delimited fields terminated by ','
tblproperties("topic"="topic_log_xueshen",
"kafka.zookeeper"="172.16.140.85:2181,172.16.140.86:2181,172.16.140.87:2181",
"kafka.broker.list"="172.16.140.85:9092,172.16.140.86:9092,172.16.140.87:9092");
3 創建衍生流表
創建衍生流表, 窗口 length和slide 均爲10秒
create stream wlog_xueshen as select * from log_xueshen streamwindow sw as (length '10' second slide '10' second);
4 創建inceptor 結果表,存儲流處理的結果
use dbname;
create table result_table(url stirng,count int);
5 啓動流任務
insert into result_table select url,count(*) from wlog_xueshen group by url;
6 向kafka topic 發送數據 通過 console producer 向 kafka topic 發送數據
cd TDH_Client/kafka/bin
./kafka-console-producer.sh --topic topic_log_xueshen --broker-list
ip1:9092,ip2:9092,ip3:9092
發送給Kafka的實驗數據:可通過粘貼的方式進行
27.0.1.125,www.transwarp.io/home.html,2016-8-14 20:12:31.132
54.231.66.16,www.transwarp.io/product.html,2016-8-14 20:12:32.132
72.21.203.5,www.transwarp.io/case.html,2016-8-14 20:12:33.132
207.241.224.2,www.transwarp.io/product.html,2016-8-14 20:12:34.132
12.129.206.133,www.transwarp.io/product.html,2016-8-14 20:12:51.132
208.111.148.7,www.transwarp.io/home.html,2016-8-14 20:12:52.132
查看inceptor 結果表中的流處理結果
select * from result_table;