使用flink的standalone模式同步Kafka的数据到clickhouse

1.使用flink官网的jar包

flink官网1.16.3版本的下载地址

flink1.16.3的安装包

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值