Have you ever unzip your project jar and make sure the class HiveParserFactory 
exist? 
Best regards, 
Yuxia 


发件人: "顾斌杰" <binjie...@paat.com> 
收件人: luoyu...@alumni.sjtu.edu.cn 
抄送: "User" <user@flink.apache.org> 
发送时间: 星期三, 2022年 6 月 08日 下午 5:11:33 
主题: Re: Could not find a suitable table factory for 
'org.apache.flink.table.planner.delegation.ParserFactory' in the classpath. 

can refer to this: 
[ 
https://stackoverflow.com/questions/52500048/flink-could-not-find-a-suitable-table-factory-for-org-apache-flink-table-facto
 | 
https://stackoverflow.com/questions/52500048/flink-could-not-find-a-suitable-table-factory-for-org-apache-flink-table-facto
 ] 

On 6/8/2022 16:04 , [ mailto:luoyu...@alumni.sjtu.edu.cn | 
yuxia<luoyu...@alumni.sjtu.edu.cn> ] wrote: 



Have you ever put the flink-sql-connector-hive into you FLINK_HOME/lib? 
And make sure your JM/TM also contains the jar. 

Best regards, 
Yuxia 


发件人: "顾斌杰" <binjie...@paat.com> 
收件人: "User" <user@flink.apache.org> 
发送时间: 星期三, 2022年 6 月 08日 下午 3:19:19 
主题: Re: Could not find a suitable table factory for 
'org.apache.flink.table.planner.delegation.ParserFactory' in the classpath. 


The following is part of the code : 

String createKafkaSql = "create table if not exists xxxxx" + 
"(xxxxx\n" + 
",update_time timestamp(3) comment '11'\n" + 
",watermark for update_time as update_time - interval '20' second)\n" + 
"with ('connector' = 'kafka'\n" + 
",'topic' = '" + topic + "'\n" + 
",'properties.bootstrap.servers' = '" + bootstrapServers + "'\n" + 
",'properties.group.id' = 'flink_sql_tyc_company_info'\n" + 
",'scan.startup.mode' = 'earliest-offset'\n" + 
",'format' = 'json','json.fail-on-missing-field' = 
'false','json.ignore-parse-errors' = 'true')"; 
tEnv.executeSql(createKafkaSql); 


tEnv.getConfig().setSqlDialect(SqlDialect.HIVE); 
String CreateHiveSql = "create table if not exists xxxx" + 
"(xxxx)\n" + 
"partitioned by (op_day string comment '111')\n" + 
"stored as orc\n" + 
"tblproperties('partition.time-extractor.timestamp-pattern'='$op_day'\n" + 
",'sink.partition-commit.trigger'='partition-time'\n" + 
",'sink.partition-commit.delay'='1h'\n" + 
",'sink.partition-commit.policy.kind'='metastore,success-file')"; 
tEnv.executeSql(CreateHiveSql); 


tEnv.getConfig().setSqlDialect(SqlDialect.DEFAULT); 
String insert = "insert into xxxxx\n" + 
"select `xxxxx" + 
",date_format(update_time,'yyyy-MM-dd')\n" + 
"from xxxxx"; 
tEnv.executeSql(insert); 
On 6/8/2022 15:14 , [ mailto:binjie...@paat.com | 顾斌杰<binjie...@paat.com> ] 
wrote: 

BQ_BEGIN



Flink version: 1.13 





When executed in the local environment (windows), there is no exception. 


When starting the project with flink web ui, I get the following error: 





Server Response: 
org.apache.flink.runtime.rest.handler.RestHandlerException: Could not execute 
application. 
at 
org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$handleRequest$1(JarRunHandler.java:108)
 
at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:822) 
at 
java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:797)
 
at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) 
at 
java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1595)
 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
 
at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
at java.lang.Thread.run(Thread.java:748) 

Caused by: java.util.concurrent.CompletionException: 
org.apache.flink.util.FlinkRuntimeException: Could not execute application. 
at 
java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273)
 
at 
java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280)
 
at 
java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1592)
 ... 7 more 

Caused by: org.apache.flink.util.FlinkRuntimeException: Could not execute 
application. 
at 
org.apache.flink.client.deployment.application.DetachedApplicationRunner.tryExecuteJobs(DetachedApplicationRunner.java:88)
 
at 
org.apache.flink.client.deployment.application.DetachedApplicationRunner.run(DetachedApplicationRunner.java:70)
 
at 
org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$handleRequest$0(JarRunHandler.java:102)
 
at 
java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
 ... 7 more 

Caused by: org.apache.flink.client.program.ProgramInvocationException: The main 
method caused an error: Could not find a suitable table factory for 
'org.apache.flink.table.planner.delegation.ParserFactory' in the classpath. 
Reason: Required context properties mismatch. The following properties are 
requested: table.sql-dialect=hive The following factories have been considered: 
org.apache.flink.table.planner.delegation.DefaultParserFactory 
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:372)
 
at 
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:222)
 
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:114) 
at 
org.apache.flink.client.deployment.application.DetachedApplicationRunner.tryExecuteJobs(DetachedApplicationRunner.java:84)
 ... 10 more 

Caused by: org.apache.flink.table.api.NoMatchingTableFactoryException: Could 
not find a suitable table factory for 
'org.apache.flink.table.planner.delegation.ParserFactory' in the classpath. 
Reason: Required context properties mismatch. The following properties are 
requested: table.sql-dialect=hive The following factories have been considered: 
org.apache.flink.table.planner.delegation.DefaultParserFactory 
at 
org.apache.flink.table.factories.TableFactoryService.filterByContext(TableFactoryService.java:300)
 
at 
org.apache.flink.table.factories.TableFactoryService.filter(TableFactoryService.java:178)
 
at 
org.apache.flink.table.factories.TableFactoryService.findAllInternal(TableFactoryService.java:164)
 
at 
org.apache.flink.table.factories.TableFactoryService.findAll(TableFactoryService.java:121)
 
at 
org.apache.flink.table.factories.ComponentFactoryService.find(ComponentFactoryService.java:50)
 
at 
org.apache.flink.table.planner.delegation.PlannerBase.createNewParser(PlannerBase.scala:143)
 
at 
org.apache.flink.table.planner.delegation.PlannerBase.getParser(PlannerBase.scala:149)
 
at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.getParser(TableEnvironmentImpl.java:1466)
 
at 
org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:724)
 
at 
com.paat.realtime.task.core.TableCrawlerTycTask.transform(TableCrawlerTycTask.java:60)
 
at 
com.paat.realtime.core.TableStreamApplicationContext.execute(TableStreamApplicationContext.java:72)
 
at 
com.paat.realtime.application.TableCrawlerTycApplication.main(TableCrawlerTycApplication.java:17)
 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
at java.lang.reflect.Method.invoke(Method.java:498) 
at 
org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:355)
 ... 13 more 




Please what is the reason for this. 














BQ_END



Reply via email to