【Flink 从 Kafka 读取数据报错】

ApacheFlink作业执行异常:源-sink连接问题与依赖冲突解决
文章描述了一个在ApacheFlink中遇到的运行时错误,涉及JobExecutionException,主要原因是源Kafka连接问题和可能的库依赖冲突,解决方法是检查并调整相关依赖,如注释或删除特定冲突的代码部分。
Exception in thread "main" org.apache.flink.runtime.client.JobExecutionException: Job execution failed.
	at org.apache.flink.runtime.jobmaster.JobResult.toJobExecutionResult(JobResult.java:144)
	at org.apache.flink.runtime.minicluster.MiniClusterJobClient.lambda$getJobExecutionResult$3(MiniClusterJobClient.java:141)
	at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
	at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
	at org.apache.flink.runtime.rpc.akka.AkkaInvocationHandler.lambda$invokeRpc$1(AkkaInvocationHandler.java:267)
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
	at org.apache.flink.util.concurrent.FutureUtils.doForward(FutureUtils.java:1300)
	at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$null$1(ClassLoadingUtils.java:93)
	at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68)
	at org.apache.flink.runtime.concurrent.akka.ClassLoadingUtils.lambda$guardCompletionWithContextClassLoader$2(ClassLoadingUtils.java:92)
	at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
	at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
	at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
	at org.apache.flink.runtime.concurrent.akka.AkkaFutureUtils$1.onComplete(AkkaFutureUtils.java:47)
	at akka.dispatch.OnComplete.internal(Future.scala:300)
	at akka.dispatch.OnComplete.internal(Future.scala:297)
	at akka.dispatch.japi$CallbackBridge.appl
虽然给定引用中未直接提及pyflink消费不到kafka数据且不报错的解决办法,但可以从相关场景中推测可能的排查方向。 在使用pyflink消费Kafka数据时,可从以下方面排查: 1. **环境配置方面**:参考在windows环境使用pyflink连接kafka的情况,确保pyflink在当前环境配置无误。环境问题可能导致数据无法正常消费,比如依赖库是否完整安装,版本是否兼容等。若使用的是特定版本的pyflink(如python flink 1.9),要保证该版本与Kafka版本以及其他依赖库版本匹配。 2. **代码逻辑方面**:在Flink Table API读取Kafka数据的场景中,代码可能会抛出异常,这提示要检查代码逻辑是否正确。对于消费不到数据的情况,检查Kafka连接配置,如Kafka的地址、端口、主题等是否正确配置;检查数据读取和处理逻辑,确保没有逻辑错误导致数据被过滤或未正确消费。 3. **依赖和版本方面**:由于pyflink社区资料少,官方python文档教程也少,可能存在依赖或版本不兼容问题。要确保使用的pyflink版本与Kafka客户端库版本兼容,避免因版本不匹配导致数据消费异常。 以下是一个简单的pyflink消费Kafka数据的示例代码: ```python from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment, EnvironmentSettings # 创建执行环境 env = StreamExecutionEnvironment.get_execution_environment() env.set_parallelism(1) env_settings = EnvironmentSettings.new_instance().in_streaming_mode().use_blink_planner().build() t_env = StreamTableEnvironment.create(env, environment_settings=env_settings) # 创建Kafka数据源表 source_ddl = """ CREATE TABLE kafka_source ( `message` STRING ) WITH ( 'connector' = 'kafka', 'topic' = 'your_topic', 'properties.bootstrap.servers' = 'localhost:9092', 'format' = 'raw' ) """ t_env.execute_sql(source_ddl) # 执行查询 result = t_env.sql_query("SELECT * FROM kafka_source") # 打印结果 result.execute_insert("print") # 执行作业 env.execute("KafkaConsumerJob") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值