# aggTopN **Repository Path**: gi1tee/agg-top-n ## Basic Information - **Project Name**: aggTopN - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-31 - **Last Updated**: 2025-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1 构建本地测试环境 1. 下载仓库`git clone https://gitee.com/gi1tee/agg-top-n.git` 2. 注意:将`./agg-top-n/docker-compose/docker-compose.yml`和`./agg-top-n/flink_sql.sql`中的`192.168.1.147`换成自己的IP 3. 在docker-compose目录下构建容器环境,包括以下容器:flink, zookeeper, kafka, elasticsearch, kibana。其中flink单机集群部署有2个容器:jobmanager, taskmanager。在jobmanager容器中编写执行sql命令。 ```bash cd ./agg-top-n/docker-compose docker-compose up -d ``` # 2 在kibana创建es索引 1. 浏览器输入http://192.168.1.147:5601登录kibaba ![alt text](assets/readme/image.png) 2. 输入构建索引语句 ```json PUT /sink_test18 { "mappings": { "properties": { "rank_json": { "type": "keyword" }, "window_end": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" } } } } ``` # 3 flink执行sql语句 1. 进入flink容器执行sql语句 ```bash docker exec -it jobmanager bash ./bin/sql-client.sh -f flink_sql.sql ``` 2. 在浏览器输入`http://192.168.1.147:8081`验证job ![alt text](assets/readme/image-1.png) # 4 kafka生成消息 ```bash cd ./agg-top-n/kafka-producer pip3 install -r requirements.txt python3 producer.py ``` # 5 验证消息 在kibana执行 ```json GET sink_test18/_search { "query": { "match_all": {} }, "size": 1000 } ```