Flink学习4 - 富函数 + 数据重分区操作 + sink 操作(kafka、redis、jdbc)

本文介绍了如何在Flink中使用sink操作连接Kafka、Redis和自定义JDBCsink到MySQL,包括富函数、数据重分区,以及解决启动Zookeeper和Kafka时遇到的问题,如日志清理和资源冲突。
摘要由CSDN通过智能技术生成

1、富函数 - 函数类接口,可以获取运行环境的上下文,实现更复杂的功能

在这里插入图片描述
在这里插入图片描述

2、数据重分区操作

在这里插入图片描述
在这里插入图片描述

3、sink操作

sink - kafka

1、引入kafka的pom依赖

<dependency>
	<groupId>org.apache.flink</groupId>
<!--<artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>-->
<!--<version>${flink.version}</version>-->
	<artifactId>flink-connector-kafka-0.11_2.12</artifactId>
	<version>1.10.1</version>
</dependency>

2.启动 zookeeper

$ bin/zookeeper-server-start.sh config/zookeeper.properties

3.启动 kafka 服务

$ bin/kafka-server-start.sh config/server.properties

4.启动 kafka 生产者

$ bin/kafka-console-profucer.sh --broker-list localhost:9092 --topic sensor

5.运行 Flink 程序,在 kafka 生产者输入数据,查看 kafka 消费者的输出结果
![在这里插入图在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sink - redis

1、添加 pom 依赖
在这里插入图片描述
2、 java代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、启动 redis

redis-server..exe redis.windows.conf

原来的不要关闭,启动另一个窗口

redis-cli.exe -h 127.0.0.1 -p 6379

4、运行程序,进行查询
在这里插入图片描述

sink-JDBC自定义sink-mysql

1.pom依赖
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

错误

1 启动 zookeeper,却无法启动 kafka

原因:kafka 日志被异常清理导致进程频繁挂掉

linux 会定时清理 /tmp 目录下的文件, kafka 日志文件目录正是放在了 /tmp/kafka-logs目录下,导致被定时给清理掉了,所以 kafka 在尝试读取或追加日志时就会出错。

修改:配置文件中的log.dirs

vi ./config/server.properties

重启kafka
在这里插入图片描述
2 另一个程序正在使用此文件,进程无法访问

原因:该问题是因为在关闭启动命令窗口时,直接点击右上角的×号关闭,下次启动就会出现该问题。
正确的关闭窗口方法:在启动窗口按ctrl+C

输入字母—Y则可成功关闭。需要注意的是该选择可能需要等待一会。这样子关闭窗口下次就可以正常启动了。

3由于 window 自带的 linux 子系统,由于是个 mini 的系统,没有其他功能,也无法下载软件 ,因此 windows 版本的 redis,在 window 中的 cmd 中测试

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Saturn8523

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值