You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by yidan zhao <hi...@gmail.com> on 2021/11/11 02:06:06 UTC

Re: flink 1.10 sql 读写 hive 2.1.0

这报错信息没几句,光代码看不出来啥的。

liuyehan <ly...@163.com> 于2021年11月11日周四 上午9:54写道:

> 您好!
>
>
>     感谢您百忙之中抽空看我邮件;
> 目前问题:
> 使用看flink 1.10官网 hive部分,出现了Exception in thread "main"
> java.lang.IncompatibleClassChangeError: Implementing class
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>
>
> pom.xml:
> <dependency>
>     <groupId>org.apache.flink</groupId>
>     <artifactId>flink-connector-hive_2.11</artifactId>
>     <version>1.10.2</version>
>     <scope>provided</scope>
> </dependency>
>
> <dependency>
>     <groupId>org.apache.flink</groupId>
>     <artifactId>flink-table-api-java-bridge_2.11</artifactId>
>     <version>1.10.2</version>
>     <scope>provided</scope>
> </dependency>
>
> <!-- Hive Dependency -->
> <dependency>
>     <groupId>org.apache.hive</groupId>
>     <artifactId>hive-exec</artifactId>
>     <version>2.1.0</version>
>     <scope>provided</scope>
> </dependency>
>
>
> 代码:
>  EnvironmentSettings settings =
> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
> TableEnvironment tableEnv = TableEnvironment.create(settings);
>
> //EnvironmentSettings settings =
> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
>
>        // TableEnvironment tableEnv = TableEnvironment.create(settings);
>
> String name            = "myhive";
> String defaultDatabase = "default";
> String hiveConfDir     = "/export/server/hive-2.1.0/conf";
>
> HiveCatalog hive = new HiveCatalog(name, defaultDatabase,
> hiveConfDir,"2.1.0");
> tableEnv.registerCatalog("myhive", hive);
>
> // set the HiveCatalog as the current catalog of the session
> tableEnv.useCatalog("myhive");
> Table result = tableEnv.sqlQuery("select * from exp_2_mysql_table limit
> 10");
> result.printSchema();
>
> tableEnv.execute("Flink SQL");
>
>
>
>
>
>
>
>
>

Re:Re:Re: flink 1.10 sql 读写 hive 2.1.0

Posted by liuyehan <ly...@163.com>.
您好!


再次补充下:报错的那一行代码是TableEnvironment tableEnv = TableEnvironment.create(settings);


直接运行的话,会报错;
Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException: Could not find a suitable table factory for 'org.apache.flink.table.delegation.ExecutorFactory' in the classpath. Reason: No factory implements 'org.apache.flink.table.delegation.ExecutorFactory'. The following properties are requested: class-name=org.apache.flink.table.planner.delegation.BlinkExecutorFactory streaming-mode=false The following factories have been considered: org.apache.flink.table.sources.CsvBatchTableSourceFactory org.apache.flink.table.sources.CsvAppendTableSourceFactory org.apache.flink.table.sinks.CsvBatchTableSinkFactory org.apache.flink.table.sinks.CsvAppendTableSinkFactory org.apache.flink.table.catalog.GenericInMemoryCatalogFactory org.apache.flink.table.module.CoreModuleFactory at org.apache.flink.table.factories.TableFactoryService.filterByFactoryClass(TableFactoryService.java:238) at org.apache.flink.table.factories.TableFactoryService.filter(TableFactoryService.java:185) at org.apache.flink.table.factories.TableFactoryService.findAllInternal(TableFactoryService.java:171) at org.apache.flink.table.factories.TableFactoryService.findAll(TableFactoryService.java:125) at org.apache.flink.table.factories.ComponentFactoryService.find(ComponentFactoryService.java:48) at org.apache.flink.table.api.internal.TableEnvironmentImpl.create(TableEnvironmentImpl.java:203) at org.apache.flink.table.api.TableEnvironment.create(TableEnvironment.java:87) at hive.Flink_Hive_Test.main(Flink_Hive_Test.java:11) 然后加了blink的依赖的包;
<!--        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-planner-blink_2.11</artifactId>
            <version>1.10.2</version>

        </dependency>-->


就出现了这样报错:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.flink.table.planner.delegation.PlannerBase.<init>(PlannerBase.scala:86)
at org.apache.flink.table.planner.delegation.BatchPlanner.<init>(BatchPlanner.scala:47)
at org.apache.flink.table.planner.delegation.BlinkPlannerFactory.create(BlinkPlannerFactory.java:52)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.create(TableEnvironmentImpl.java:208)
at org.apache.flink.table.api.TableEnvironment.create(TableEnvironment.java:87)
















在 2021-11-11 10:16:40,"liuyehan" <ly...@163.com> 写

不好意思,这个是全部的报错;
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.flink.table.planner.delegation.PlannerBase.<init>(PlannerBase.scala:86)
at org.apache.flink.table.planner.delegation.BatchPlanner.<init>(BatchPlanner.scala:47)
at org.apache.flink.table.planner.delegation.BlinkPlannerFactory.create(BlinkPlannerFactory.java:52)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.create(TableEnvironmentImpl.java:208)
at org.apache.flink.table.api.TableEnvironment.create(TableEnvironment.java:87)
at hive.Flink_Hive_Test.main(Flink_Hive_Test.java:13)

















在 2021-11-11 10:06:06,"yidan zhao" <hi...@gmail.com> 写道:
>这报错信息没几句,光代码看不出来啥的。
>
>liuyehan <ly...@163.com> 于2021年11月11日周四 上午9:54写道:
>
>> 您好!
>>
>>
>>     感谢您百忙之中抽空看我邮件;
>> 目前问题:
>> 使用看flink 1.10官网 hive部分,出现了Exception in thread "main"
>> java.lang.IncompatibleClassChangeError: Implementing class
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>>
>>
>> pom.xml:
>> <dependency>
>>     <groupId>org.apache.flink</groupId>
>>     <artifactId>flink-connector-hive_2.11</artifactId>
>>     <version>1.10.2</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>> <dependency>
>>     <groupId>org.apache.flink</groupId>
>>     <artifactId>flink-table-api-java-bridge_2.11</artifactId>
>>     <version>1.10.2</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>> <!-- Hive Dependency -->
>> <dependency>
>>     <groupId>org.apache.hive</groupId>
>>     <artifactId>hive-exec</artifactId>
>>     <version>2.1.0</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>>
>> 代码:
>>  EnvironmentSettings settings =
>> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
>> TableEnvironment tableEnv = TableEnvironment.create(settings);
>>
>> //EnvironmentSettings settings =
>> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
>>
>>        // TableEnvironment tableEnv = TableEnvironment.create(settings);
>>
>> String name            = "myhive";
>> String defaultDatabase = "default";
>> String hiveConfDir     = "/export/server/hive-2.1.0/conf";
>>
>> HiveCatalog hive = new HiveCatalog(name, defaultDatabase,
>> hiveConfDir,"2.1.0");
>> tableEnv.registerCatalog("myhive", hive);
>>
>> // set the HiveCatalog as the current catalog of the session
>> tableEnv.useCatalog("myhive");
>> Table result = tableEnv.sqlQuery("select * from exp_2_mysql_table limit
>> 10");
>> result.printSchema();
>>
>> tableEnv.execute("Flink SQL");
>>
>>
>>
>>
>>
>>
>>
>>
>>





 

Re:Re: flink 1.10 sql 读写 hive 2.1.0

Posted by liuyehan <ly...@163.com>.
不好意思,这个是全部的报错;
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.flink.table.planner.delegation.PlannerBase.<init>(PlannerBase.scala:86)
at org.apache.flink.table.planner.delegation.BatchPlanner.<init>(BatchPlanner.scala:47)
at org.apache.flink.table.planner.delegation.BlinkPlannerFactory.create(BlinkPlannerFactory.java:52)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.create(TableEnvironmentImpl.java:208)
at org.apache.flink.table.api.TableEnvironment.create(TableEnvironment.java:87)
at hive.Flink_Hive_Test.main(Flink_Hive_Test.java:13)

















在 2021-11-11 10:06:06,"yidan zhao" <hi...@gmail.com> 写道:
>这报错信息没几句,光代码看不出来啥的。
>
>liuyehan <ly...@163.com> 于2021年11月11日周四 上午9:54写道:
>
>> 您好!
>>
>>
>>     感谢您百忙之中抽空看我邮件;
>> 目前问题:
>> 使用看flink 1.10官网 hive部分,出现了Exception in thread "main"
>> java.lang.IncompatibleClassChangeError: Implementing class
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>>
>>
>> pom.xml:
>> <dependency>
>>     <groupId>org.apache.flink</groupId>
>>     <artifactId>flink-connector-hive_2.11</artifactId>
>>     <version>1.10.2</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>> <dependency>
>>     <groupId>org.apache.flink</groupId>
>>     <artifactId>flink-table-api-java-bridge_2.11</artifactId>
>>     <version>1.10.2</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>> <!-- Hive Dependency -->
>> <dependency>
>>     <groupId>org.apache.hive</groupId>
>>     <artifactId>hive-exec</artifactId>
>>     <version>2.1.0</version>
>>     <scope>provided</scope>
>> </dependency>
>>
>>
>> 代码:
>>  EnvironmentSettings settings =
>> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
>> TableEnvironment tableEnv = TableEnvironment.create(settings);
>>
>> //EnvironmentSettings settings =
>> EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
>>
>>        // TableEnvironment tableEnv = TableEnvironment.create(settings);
>>
>> String name            = "myhive";
>> String defaultDatabase = "default";
>> String hiveConfDir     = "/export/server/hive-2.1.0/conf";
>>
>> HiveCatalog hive = new HiveCatalog(name, defaultDatabase,
>> hiveConfDir,"2.1.0");
>> tableEnv.registerCatalog("myhive", hive);
>>
>> // set the HiveCatalog as the current catalog of the session
>> tableEnv.useCatalog("myhive");
>> Table result = tableEnv.sqlQuery("select * from exp_2_mysql_table limit
>> 10");
>> result.printSchema();
>>
>> tableEnv.execute("Flink SQL");
>>
>>
>>
>>
>>
>>
>>
>>
>>