如果把kafka connector shade jar放在blink lib 下面 然后启动是没有问题的 但是放在sql client --jar 参数就有问题
我又多测试了几遍 发现class not found的类 是随机的 有什么建议么? 2019-02-26 10:36:10,343 ERROR org.apache.flink.kafka011.shaded.org.apache.kafka.common.utils.KafkaThread - Uncaught exception in kafka-producer-network-thread | producer-1: java.lang.NoClassDefFoundError: org/apache/flink/kafka011/shaded/org/apache/kafka/common/requests/ProduceResponse$PartitionResponse at org.apache.flink.kafka011.shaded.org.apache.kafka.common.requests.ProduceResponse.<init>(ProduceResponse.java:107) at org.apache.flink.kafka011.shaded.org.apache.kafka.common.requests.AbstractResponse.getResponse(AbstractResponse.java:55) at org.apache.flink.kafka011.shaded.org.apache.kafka.clients.NetworkClient.createResponse(NetworkClient.java:569) at org.apache.flink.kafka011.shaded.org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:663) at org.apache.flink.kafka011.shaded.org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:442) at org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:224) at org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:162) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.ClassNotFoundException: org.apache.flink.kafka011.shaded.org.apache.kafka.common.requests.ProduceResponse$PartitionResponse at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$ChildFirstClassLoader.loadClass(FlinkUserCodeClassLoaders.java:120) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 2019-02-25 14:34:54,"Becket Qin" <becket....@gmail.com> 写道: >@Kurt, > >这个是符合预期的。为了防止和用户code中可能的Kafka依赖发生冲突。 > >On Mon, Feb 25, 2019 at 10:28 AM Kurt Young <ykt...@gmail.com> wrote: > >> kafka的包看路径是shade过的,这是符合预期的吗? @Becket >> >> Best, >> Kurt >> >> >> On Mon, Feb 25, 2019 at 9:56 AM 张洪涛 <hongtao12...@163.com> wrote: >> >> > >> > >> > sql-client.sh 的启动参数首先在classpath里面会包含kafka相关的jar 另外会有--jar >> > 包含所有connector的jar >> > >> > >> > 这些jars在sql-client提交job时候会上传到cluster的blob store 但是很奇怪为啥找不到 >> > >> > >> > 00:00:06 /usr/lib/jvm/java-1.8.0-openjdk/bin/java >> > -Dlog.file=/bigdata/flink-1.5.1/log/flink-root-sql-client-gpu06.log >> > -Dlog4j.configuration=file:/bigdata/flink-1.5.1/conf/log4j-cli.properties >> > -Dlogback.configurationFile=file:/bigdata/flink-1.5.1/conf/logback.xml >> > -classpath >> > >> /bigdata/flink-1.5.1/lib/flink-python_2.11-1.5.1.jar:/bigdata/flink-1.5.1/lib/flink-shaded-hadoop2-uber-1.5.1.jar:/bigdata/flink-1.5.1/lib/log4j-1.2.17.jar:/bigdata/flink-1.5.1/lib/slf4j-log4j12-1.7.7.jar:/bigdata/flink-1.5.1/lib/flink-dist_2.11-1.5.1.jar::/bigdata/hadoop-2.7.5/etc/hadoop::/bigdata/flink-1.5.1/opt/connectors/kafka011/flink-connector-kafka-0.11_2.11-1.5.1-sql-jar.jar:/bigdata/flink-1.5.1/opt/connectors/kafka010/flink-connector-kafka-0.10_2.11-1.5.1-sql-jar.jar:/bigdata/flink-1.5.1/opt/connectors/kafka09/flink-connector-kafka-0.9_2.11-1.5.1-sql-jar.jar:/bigdata/flink-1.5.1/opt/connectors/kafka08/flink-connector-kafka-0.8_2.11-1.5.1.jar:/bigdata/flink-1.5.1/opt/connectors/flink-hbase_2.11-1.5.1.jar:/bigdata/flink-1.5.1/opt/connectors/flink-connector-hadoop-compatibility_2.11-1.5.1.jar:/bigdata/flink-1.5.1/opt/connectors/flink-connector-hive_2.11-1.5.1.jar:/bigdata/flink-1.5.1/opt/sql-client/datanucleus-api-jdo-4.2.4.jar:/bigdata/flink-1.5.1/opt/sql-client/javax.jdo-3.2.0-m3.jar:/bigdata/flink-1.5.1/opt/sql-client/datanucleus-core-4.1.17.jar:/bigdata/flink-1.5.1/opt/sql-client/datanucleus-rdbms-4.1.19.jar:/bigdata/flink-1.5.1/opt/sql-client/flink-sql-client-1.5.1.jar >> > org.apache.flink.table.client.SqlClient embedded -d >> > conf/sql-client-defaults.yaml --jar >> > >> /bigdata/flink-1.5.1/opt/connectors/kafka011/flink-connector-kafka-0.11_2.11-1.5.1-sql-jar.jar >> > --jar >> > >> /bigdata/flink-1.5.1/opt/connectors/kafka010/flink-connector-kafka-0.10_2.11-1.5.1-sql-jar.jar >> > --jar >> > >> /bigdata/flink-1.5.1/opt/connectors/kafka09/flink-connector-kafka-0.9_2.11-1.5.1-sql-jar.jar >> > --jar >> > >> /bigdata/flink-1.5.1/opt/connectors/kafka08/flink-connector-kafka-0.8_2.11-1.5.1.jar >> > --jar /bigdata/flink-1.5.1/opt/connectors/flink-hbase_2.11-1.5.1.jar >> --jar >> > >> /bigdata/flink-1.5.1/opt/connectors/flink-connector-hadoop-compatibility_2.11-1.5.1.jar >> > --jar >> > /bigdata/flink-1.5.1/opt/connectors/flink-connector-hive_2.11-1.5.1.jar >> > --jar /bigdata/flink-1.5.1/opt/sql-client/flink-sql-client-1.5.1.jar >> > >> > >> > >> > >> > >> > >> > 在 2019-02-22 19:32:18,"Becket Qin" <becket....@gmail.com> 写道: >> > >能不能看一下运行sql-client.sh的运行参数。具体做法是: >> > > >> > >运行sql-client.sh >> > >ps | grep sql-client >> > > >> > >查看一下其中是不是有这个 flink-connector-kafka-0.11 的 jar. >> > > >> > >Jiangjie (Becket) Qin >> > > >> > >On Fri, Feb 22, 2019 at 6:54 PM 张洪涛 <hongtao12...@163.com> wrote: >> > > >> > >> >> > >> >> > >> 是包含这个类的 >> > >> >> > >> >> > >> jar -tf flink-connector-kafka-0.11_2.11-*.jar | grep Crc32C >> > >> >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C$1.class >> > >> >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C$ChecksumFactory.class >> > >> >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C$Java9ChecksumFactory.class >> > >> >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C$PureJavaChecksumFactory.class >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C.class >> > >> >> > >> >> > >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/PureJavaCrc32C.class >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> 在 2019-02-22 18:03:18,"Zhenghua Gao" <doc...@gmail.com> 写道: >> > >> >能否看一下对应的包里是否有这个类, 方法如下(假设你的blink安装包在 /tmp/blink): >> > >> > >> > >> >cd /tmp/blink/opt/connectors/kafka011 >> > >> >jar -tf flink-connector-kafka-0.11_2.11-*.jar | grep Crc32C >> > >> > >> > >> >On Fri, Feb 22, 2019 at 2:56 PM 张洪涛 <hongtao12...@163.com> wrote: >> > >> > >> > >> >> >> > >> >> >> > >> >> 大家好! >> > >> >> >> > >> >> >> > >> >> 我正在测试Blink sql client kafka sink connector ,但是发现写入失败,以下是我的步骤 >> > >> >> >> > >> >> >> > >> >> 环境配置 >> > >> >> blink standalone 模式 >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> 1. 配置environment 启动sql client >> > >> >> >> > >> >> >> > >> >> 2. 创建kafka sink table >> > >> >> CREATETABLEkafka_sink( >> > >> >> messageKeyVARBINARY, >> > >> >> messageValueVARBINARY, >> > >> >> PRIMARYKEY(messageKey)) >> > >> >> with( >> > >> >> type='KAFKA011', >> > >> >> topic='sink-topic', >> > >> >> `bootstrap.servers`='172.19.0.108:9092', >> > >> >> retries='3' >> > >> >> ); >> > >> >> >> > >> >> >> > >> >> 3. 创建查询语句并执行 >> > >> >> INSERT INTO kafka_sink >> > >> >> SELECT CAST('123' AS VARBINARY) AS key, >> > >> >> CAST(CONCAT_WS(',', 'HELLO', 'WORLD') AS VARBINARY) AS msg; >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> 错误日志(from task executor log) >> > >> >> >> > >> >> >> > >> >> 主要是找不到kafka common package下面的一个类, 但是启动sql client 时候已经把kafka >> connector >> > >> >> 相关的jar包包括在内 在提交job时候 也会把这些jars 和 >> jobgraph一并上传到cluster,理论上这些class都会被加载 >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> 2019-02-22 14:37:18,356 ERROR >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.common.utils.KafkaThread >> > >> >> - Uncaught exception in kafka-producer-network-thread | producer-1: >> > >> >> java.lang.NoClassDefFoundError: >> > >> >> >> org/apache/flink/kafka011/shaded/org/apache/kafka/common/utils/Crc32C >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.common.record.DefaultRecordBatch.writeHeader(DefaultRecordBatch.java:468) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.common.record.MemoryRecordsBuilder.writeDefaultBatchHeader(MemoryRecordsBuilder.java:339) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.common.record.MemoryRecordsBuilder.close(MemoryRecordsBuilder.java:293) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.ProducerBatch.close(ProducerBatch.java:391) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.RecordAccumulator.drain(RecordAccumulator.java:485) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.Sender.sendProducerData(Sender.java:254) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:223) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.kafka011.shaded.org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:162) >> > >> >> at java.lang.Thread.run(Thread.java:748) >> > >> >> Caused by: java.lang.ClassNotFoundException: >> > >> >> >> org.apache.flink.kafka011.shaded.org.apache.kafka.common.utils.Crc32C >> > >> >> at >> java.net.URLClassLoader.findClass(URLClassLoader.java:381) >> > >> >> at java.lang.ClassLoader.loadClass(ClassLoader.java:424) >> > >> >> at >> > >> >> >> > >> >> > >> org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$ChildFirstClassLoader.loadClass(FlinkUserCodeClassLoaders.java:120) >> > >> >> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> -- >> > >> >> Best Regards >> > >> >> Hongtao >> > >> >> >> > >> >> >> > >> > >> > >> >-- >> > >> >若批評無自由,則讚美無意義! >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> -- >> > >> Best Regards, >> > >> HongTao >> > >> >> > >> >> > >> > >> > >> > >> > >> > >> > >> > -- >> > Best Regards, >> > HongTao >> > >> > >> -- Best Regards, HongTao