开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink 1.15解析sql报这个错误 大家有遇到过吗?

Flink 1.15解析sql报这个错误 大家有遇到过吗?image.png
qlParser parser = SqlParser.create(adsXxjStudentLearnSummarySql);
SqlNodeList sqlNodes = parser.parseStmtList();

展开
收起
三分钟热度的鱼 2023-09-27 19:27:10 180 0
4 条回答
写回答
取消 提交回答
  • 错误原因是少了slf4j-nop.jar slf4j-simple.jar, slf4j-log4j12.jar,slf4j-jdk14.jar或 logback-classic.jar中的其中一个jar包,加上去就行(只能是一个,多了就会有冲突)。

    解决方案:

    在pom.xml配置文件中加入这个依赖包

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
        <scope>compile</scope>
    </dependency>
    

    其他的依赖包记得删除(把这个删除)
    一定要删除,不然还是会出错,之后重新编译生成jar包之后就可。
    image.png
    添加完配置后看看是否有jar包,而且上面的jar包中确保只有一个。

    而且scope要改为compile则表示编译的时候就会加载此jar包,那么最后就运行成功了
    配置这些依赖包的时候一定要确保target上有这些包,可以通过maven clean 以及编译打包完成。

    最后就可以成功启动了。

    ——参考链接

    2024-01-24 11:16:26
    赞同 1 展开评论 打赏
  • 出现这种问题的原因可能是由于你在运行程序时没有正确地引入SLF4J日志库及其依赖项。为了帮助解决问题,我们需要确认以下几个步骤:
    第一步:确认环境

    • 确保已经安装了Java Development Kit (JDK),版本至少为8以上;
    • 验证已成功导入所需的依赖包,包括但不限于logback-classic、slf4j-api 和 slf4j-log4j12。

    第二步:查看项目的pom.xml文件
    如果你是在maven项目下开发的话,打开pom.xml文件看看是否有如下内容:

    <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.2.3</version>
    </dependency>
    
    <!-- 如果使用的是Log4j -->
    <!--<dependency>-->
     <!-- <groupId>org.slf4j</groupId>-->
     <!-- <artifactId>slf4j-api</artifactId>-->
     <!-- <version>1.7.6</version>-->
     <!-- </dependency>-->
     <!-- <dependency>-->
     <!-- <groupId>org.slf4j</groupId>-->
     <!-- <artifactId>jul-to-slf4j</artifactId>-->
     <!-- <version>1.7.6</version>-->
     <!-- </dependency>-->
     <!-- <dependency>-->
     <!-- <groupId>org.slf4j</groupId>-->
     <!-- <artifactId>slf4j-simple</artifactId>-->
     <!-- <version>1.7.6</version>-->
     <!-- </dependency>-->
    

    如果有误,请按照正确的顺序重新添加对应的依赖。

    第三步:确认静态绑定器加载

    有时候,即使我们在编译期间设置了正确的依赖,但在运行时仍然可能出现找不到相关类的情况。这时可以通过以下两种方式进行修复:

    1. 显式声明静态绑定器:
      在主函数或其他适当的位置加入以下代码片段:
      ```java
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;

    Logger logger = LoggerFactory.getLogger(MyClass.class.getName());

    logger.info("Hello World from {}", MyClass.class.getName());

    这里假设你的类名为`MyClass`。
    
    2. 更改静态绑定器的优先级:
    有时是因为其他第三方库如 log4j 的冲突造成的。可以在 pom.xml 文件中添加排除依赖:
    ```xml
    <exclusions>
       <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
       </exclusion>
    </exclusions>
    

    这将会把 SpringBoot 自带的日志组件排除在外,从而让 SLF4J 取代 Log4j 成为主导日志工具。

    2024-01-15 10:47:34
    赞同 展开评论 打赏
  • 某政企事业单位安全运维工程师,主要从事系统运维及网络安全工作,多次获得阿里云、华为云、腾讯云征文比赛一二等奖;CTF选手,白帽,全国交通行业网络安全大赛二等奖,全国数信杯数据安全大赛银奖,手握多张EDU、CNVD、CNNVD证书。

    这个错误表明在加载org.slf4j.impl.StaticLoggerBinder类时出了问题。SLF4J(Simple Logging Facade For Java)是一个Java日志抽象层,使得开发者可以选择任意的日志实现,如Log4j、logback等。

    错误堆栈的最后一部分提到了SqlParserException,表示在读取SQL语句时遇到了问题。具体的错误信息指出在第1行第1列发现了"create"关键字,而这并不是合法的SQL语句开头。

    解决方法可能因具体情况而异,但以下是一些通用的建议:

    • 确认你的FLINK_HOME指向的是flink的安装目录,而不是flink-sql-client的jar包所在的目录;
    • 确保你的flink-conf.yaml文件中设置了正确的SQL引擎,如果是calcite,应该是sql.parser.type:
    org.apache.calcite.sql.parser.CalciteSqlParserImpl;
    
    • 如果你是第一次运行flink,确保所有依赖项都已经正确下载和配置好;

    • 如果上述方法都不能解决问题,尝试卸载旧版本,重新安装flink,以确保所有依赖项都在同一个地方。

    2024-01-14 19:13:43
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在解析 SQL 语句时,Flink 遇到了一个不认识的 "create" 关键字。这可能是因为您的 SQL 语句中包含了错误的语法,或者您尝试解析的 SQL 语句不是 Flink 能够处理的。
    为了帮助您解决问题,请检查您的 SQL 语句以确保它符合 Flink 支持的 SQL 语法。您可以在 Flink 文档中找到有关 Flink SQL 语法的详细信息:https://ci.apache.org/projects/flink/flink-docs-release-1.15/docs/sql/sql.html
    此外,如果您在尝试执行创建表的 SQL 语句,请注意 Flink 1.15 版本不支持 CREATE TABLE 语句。要创建表,您需要使用 Flink 1.13 或更早的版本。如果您使用的是 Flink 1.15,您需要使用 CREATE SCHEMA 语句来创建表

    2024-01-12 21:58:36
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载

    相关镜像