1.使用flink官网的jar包
2.修改配置
vim conf/flink-conf.yaml
修改如下内容:
# JobManager节点地址.
jobmanager.rpc.address: localhost #或者直接写ip地址
jobmanager.bind-host: 0.0.0.0
rest.address: localhost #或者直接写ip地址
rest.bind-address: 0.0.0.0
# TaskManager节点地址.需要配置为当前机器名
taskmanager.bind-host: 0.0.0.0
taskmanager.host: localhost #或者直接写ip地址
因为是单机模式,只用了一台服务器,所以vim workers是localhost,vim masters是localhost:8081
3.准备
把写好的jar包(胖包)放在flink的lib目录下,flink启动时会自动扫描lib目录,注意log4j依赖冲突问题,改屏蔽的依赖在打包时要屏蔽
standalone的应用模式下不会提前创建集群, 所以不能调用 start-cluster.sh 脚本。我们可以使用同样在 bin 目录下的 standalone-job.sh 来创建一个 JobManager
4.启动 JobManager。(不用指定jar包,启动脚本会自动扫描 lib 目录下所有的jar 包,这里直接指定作业入口类)
./bin/standalone-job.sh start --job-classname zhilong.com.dw.dwd.FlinkSinkClickhouse
./bin/standalone-job.sh start --job-classname zhilong.com.dw.dwd.KafkaToClickhouse
./bin/taskmanager.sh start
5.启动 TaskManager。
./bin/taskmanager.sh start
6.如果希望停掉集群,同样可以使用脚本,命令如下。(这里未测试成功别停止脚本)
./bin/standalone-job.sh stop
./bin/taskmanager.sh stop
./bin/jobmanager.sh stop
./bin/taskmanager.sh stop
7.根据代码里设置的Kafka数据属性在clickhouse里建表
CREATE TABLE
ods_countlyV2 (
appKey String,
appVersion String,
deviceId String,
phone_no String
) ENGINE = MergeTree ()
ORDER BY
(appKey, appVersion, deviceId, phone_no);
8.起一个Kafka生产者发送一条消息,然后观察clickhouse对应表里的情况
9.观察clickhouse表里数据的情况
#代码
1.主程序类
package com.kszx;
import com.alibaba.fastjson.JSON;
import c