您好!

再次补充下:报错的那一行代码是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" <[email protected]> 写

不好意思,这个是全部的报错;
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" <[email protected]> 写道:
>这报错信息没几句,光代码看不出来啥的。
>
>liuyehan <[email protected]> 于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");
>>
>>
>>
>>
>>
>>
>>
>>
>>





 

回复