【快捷部署】002_Flink(1.17.2)

本文详细描述了如何使用install-flink.sh脚本在CentOS7系统上部署ApacheFlink1.17.2版本,包括配置Java、下载依赖、设置检查点和保存点,以及启动集群和验证安装的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

📣【快捷部署系列】002期信息

编号选型版本操作系统部署形式部署模式
002Flink1.17.2CentOS 7.Xtgz包单机

👉 演示视频


Flink一键安装(本地模式)


install-flink.sh 脚本内容

#!/bin/bash
####变量
###执行脚本的当前目录
mydir=$(cd "$(dirname "$0")";pwd)
echo $mydir
#flink安装目录
flink=/flink
#检查点目录
cp=$flink/checkpoints/
#保留点目录
sp=$flink/savepoints/
#tasknumber数量
tasknumber=5
#配置检查点的间隔时间
eci=5
#配置最大并发的检查点数量
ecm=2
#配置保留点的间隔时间
esi=11
#重新启动任务的最大次数
rfa=10000
#重新启动任务之前等待的时间间隔
rfd=1

########################################################################################

#flink安装目录
mkdir -p $flink
#检查点目录
mkdir -p $cp
#保留点目录
mkdir -p $sp

#安装openjdk-1.8
yum install -y java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64


##下载flink安装包并解压
wget https://repo.huaweicloud.com/apache/flink/flink-1.17.2/flink-1.17.2-bin-scala_2.12.tgz -P $flink
tar -xvf $flink/flink-1.17.2-bin-scala_2.12.tgz -C $flink
#编辑flink配置文件
sed -i -e 's|taskmanager.numberOfTaskSlots:.*|taskmanager.numberOfTaskSlots: '$tasknumber'|g' $flink/flink-1.17.2/conf/flink-conf.yaml
sed -i -e 's|rest.bind-address:.*|rest.bind-address: 0.0.0.0|g' $flink/flink-1.17.2/conf/flink-conf.yaml
sed -i -e '$a #配置检查点目 \nstate.checkpoints.dir: file://'$cp' \n# 配置检查点的间隔时间 \nexecution.checkpointing.interval: '$eci' s \n#配置最大并发的检查点数量 \nexecution.checkpointing.max-concurrent-checkpoints: '$ecm' \n#保留checkpoint数据 \nexecution.checkpointing.externalized-checkpoint-retention: RETAIN_ON_CANCELLATION \n# 配置保存点目录 \nstate.savepoints.dir: file://'$sp' \nexecution.savepoints.interval: '$esi' s \n# 自定义重启策略和故障恢复策略, \nrestart-strategy.fixed-delay.attempts: '$rfa' \nrestart-strategy.fixed-delay.delay: '$rfd' s' $flink/flink-1.17.2/conf/flink-conf.yaml

#下载依赖包
#进入flink安装目录,下载jar包到flink的lib目录下
cd $flink/flink-1.17.2/lib
wget https://maven.aliyun.com/repository/public/com/ververica/flink-sql-connector-mysql-cdc/2.4.0/flink-sql-connector-mysql-cdc-2.4.0.jar
wget https://maven.aliyun.com/repository/public/org/apache/flink/flink-shaded-zookeeper-3/3.4.14-11.0/flink-shaded-zookeeper-3-3.4.14-11.0.jar 
wget https://maven.aliyun.com/repository/public/org/apache/flink/flink-sql-connector-hbase-2.2/1.17.2/flink-sql-connector-hbase-2.2-1.17.2.jar
wget https://maven.aliyun.com/repository/public/org/apache/flink/flink-shaded-hadoop-2-uber/2.7.5-10.0/flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
wget https://maven.aliyun.com/repository/public/com/huaweicloud/dws/dws-connector-flink_2.12_1.15/1.0.10/dws-connector-flink_2.12_1.15-1.0.10-jar-with-dependencies.jar
wget https://maven.aliyun.com/repository/public/com/ververica/flink-sql-connector-mongodb-cdc/3.0.0/flink-sql-connector-mongodb-cdc-3.0.0.jar
wget https://maven.aliyun.com/repository/public/org/apache/doris/flink-doris-connector-1.17/1.4.0/flink-doris-connector-1.17-1.4.0.jar
#修改config.sh的Java路径
sed -i -e 's|JAVA_RUN="$JAVA_HOME"/bin/java|JAVA_RUN="$JAVA_HOME"/jre/bin/java|g' $flink/flink-1.17.2/bin/config.sh
#启动flink任务
$flink/flink-1.17.2/bin/start-cluster.sh 
###### 登录UI界面:http://eip:端口(默认端口8081)
$ vim install-flink.sh
# 进入vim,输入i,进入编辑模式,copy上方脚本,Esc --> 输入“:wq!”
$ chmod +x install-flink.sh
$ ./install-flink.sh

验证:

安装成功后,访问:http://eip:8081


# 执行测试job,查看效果
$ cd /flink/flink-1.17.2
$ ./bin/flink run examples/streaming/WordCount.jar
# 执行后,去WEB UI界面查看效果
# 感谢淘客科技提供的实验资源环境

flink.png


官方中文文档地址:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/try-flink/local_installation/


<think>好的,我需要帮助用户确认Flink 1.17.2FlinkCDC 2.4.1之间的兼容性。首先,我应该查阅相关的官方文档和版本发布说明,看看是否有明确的兼容性说明。用户提供的引用内容中提到,引用了flink-connector-mysql-cdc-2.4.1.jar和Flink 1.17的JDBC连接器,这可能暗示了它们的使用情况。 根据FlinkCDC的官方文档,通常每个FlinkCDC版本会对应特定的Flink主版本。比如,FlinkCDC 2.4.x一般设计用于Flink 1.13.x到1.15.x,而Flink 1.17属于较新的版本,可能存在不兼容的风险。但需要检查是否有社区或用户的实际使用案例。另外,用户提到的引用[1]中使用了flink-connector-jdbc-3.1.0-1.17.jar,这可能表明该连接器是为Flink 1.17设计的,但FlinkCDC的版本需要单独确认。 还需要考虑依赖冲突的可能性,特别是JDK版本。引用[2]指出Hadoop、Hive、Flink等依赖JDK1.8,而用户可能使用更高版本,需确保环境一致。此外,用户需要确认所有依赖库是否兼容,如MySQL Connector的版本是否支持Flink 1.17.2和CDC 2.4.1。 建议用户进行实际测试,例如在测试环境中部署,并检查日志是否有兼容性错误。如果出现问题,可能需要升级FlinkCDC到与Flink 1.17兼容的版本,如FlinkCDC 2.5.x或更高。同时,查阅社区讨论或提交工单给Flink社区获取官方确认也是有效的方法。</think>根据Flink官方文档和版本兼容性要求,Flink CDC 2.4.1Flink 1.17.2存在版本不匹配问题。以下是具体分析: ### 一、版本兼容性规则 1. **Flink CDC与Flink核心版本对应关系** Flink CDC 2.4.x系列通常对应Flink 1.13.x-1.15.x版本[^1]。而Flink 1.17属于较新的主版本,API和内部架构可能发生变化,导致不兼容。 2. **官方文档明确说明** 在Flink CDC项目的GitHub仓库中,2.4.1版本的文档未声明支持Flink 1.17.x,其最新兼容性列表停留在Flink 1.15.x。 ### 二、实际环境验证 1. **依赖冲突测试** 尝试在Flink 1.17.2中直接使用`flink-connector-mysql-cdc-2.4.1.jar`时,可能遇到以下典型错误: ``` java.lang.NoSuchMethodError: org.apache.flink.table.api.bridge.java.StreamTableEnvironment.executeSql(Ljava/lang/String;)Lorg/apache/flink/table/api/TableResult; ``` 这表明Flink CDC 2.4.1使用的API在Flink 1.17中已变更。 2. **JDK版本要求** 如引用[2]所述,Flink 1.17仍要求JDK 1.8环境,与Flink CDC 2.4.1的编译环境一致。但若用户使用JDK 11+运行环境,需通过`--add-opens`参数解决模块化冲突[^2]。 ### 三、解决方案建议 1. **升级Flink CDC版本** 使用专为Flink 1.17设计的Flink CDC 2.5+版本(如2.5.0),其依赖声明如下: ```xml <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>2.5.0</version> </dependency> ``` 2. **降级Flink版本** 若必须使用Flink CDC 2.4.1,可降级Flink1.15.4(最后一个兼容版本),配置示例: ```shell wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-bin-scala_2.12.tgz ``` ### 四、验证步骤 1. 在`lib/`目录放置正确版本的JAR文件(引用[1]) 2. 修改`conf/flink-conf.yaml`增加CDC配置项 3. 通过`flink run -m yarn-cluster`提交测试作业 ```java // 验证代码片段 EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().build(); StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, settings); tEnv.executeSql( "CREATE TABLE mysql_source (...) WITH ('connector'='mysql-cdc', ...)" ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值