由于第一次做实时,所以踩坑比较多,见谅(测试环境用的flink),小公司没有用到hadoop组件
一、踩坑记录
1:本地代码的flink版本是flink1.15.4,生产环境是flink1.16.1,在使用侧输出流时报错,需要使用以下写法,需要使用SideOutputDataStream不能用DataStream,同时将pom下的flink版本切换为1.16.1
SideOutputDataStream<String> tblHotelGuestSnapStreamDS = processedDS.getSideOutput(tblHotelGuestSnaptag);
2: Oceanus环境运行flink时候会默认使用RocksDB State Backend,不需要再手动配置检查点
3:可以利用checkpoint检查点来保证数据的端到端一致
4:打包可以使用maven协助打包
5: bin/start-cluster.sh启动后测试环境的8081无法访问,需要修改flink-conf.yml的属性rest.bind-address: 0.0.0.0和rest.bind-port: 8081和rest.port: 8081,之后重启就可以访问
6.mysql时间字段是datetime类型格式,使用默认的json序列化器会将时间格式转换成时间戳格式,最后写入starrocks后发现写入没有报错,但是时间字段为空,需要自定义序列化器,将时间戳格式数据转换成时间格式即可