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

有用过flink 1.17.1的 hive方言吗?

有用过flink 1.17.1的 hive方言吗? set table.sql-dialect =hive 按照官方配置connector-hive hive-exec libfb303 antlr-runtime 这些依赖 也移动了对应的plamner jar包 创建hiva catalog进去报错kava.lanh.nosuvhmethoderror: org.apache.commons.loghing.logfactory.relsase(Ljava/lang/ClassLoader;)V

展开
收起
真的很搞笑 2023-09-19 08:46:34 104 0
6 条回答
写回答
取消 提交回答
  • 深耕大数据和人工智能

    是的,Flink 1.17.1 支持 Hive 方言。Flink 的 Hive 方言允许用户使用类似于 Hive QL 的语法来编写 Flink 作业,从而更容易地迁移和集成现有的 Hive 查询和数据处理逻辑。这对于那些熟悉 Hive 但希望利用 Flink 的流处理和批处理能力的用户来说是非常有用的。

    在 Flink 1.17.1 中,你可以通过配置 Flink 以使用 Hive 的元数据、UDF(用户自定义函数)和其他功能,从而实现与 Hive 的更紧密集成。这通常涉及设置 Flink 以连接到 Hive Metastore,以及可能需要在 Flink 的类路径中包含 Hive 的相关依赖项。

    请注意,虽然 Flink 支持 Hive 方言,但两者在功能和性能上可能存在差异。因此,在使用 Flink 的 Hive 方言时,建议仔细测试你的查询以确保它们按预期工作,并充分利用 Flink 的并行和分布式处理能力。

    2024-01-25 21:20:44
    赞同 展开评论 打赏
  • 确认下您使用的Flink 1.17.1版本和hive相关软件包是否兼容。

    SQL 方言可以通过 table.sql-dialect 属性指定。因此你可以通过 SQL 客户端 yaml 文件中的 configuration 部分来设置初始方言。

    execution:
      planner: blink
      type: batch
      result-mode: table
    
    configuration:
      table.sql-dialect: hive
    

    或者在 SQL 客户端启动后设置方言。

    ----使用hive方言
    Flink SQL> set table.sql-dialect=hive;
    [INFO] Session property has been set.
    

    创建catalog。

    ----创建
    CREATE CATALOG alan_hivecatalog WITH (
        'type' = 'hive',
        'default-database' = 'testhive',
        'hive-conf-dir' = '/usr/local/bigdata/apache-hive-3.1.2-bin/conf'
    );
    ---使用
    use alan_hivecatalog ;
    

    ——参考链接

    2024-01-22 17:36:24
    赞同 1 展开评论 打赏
  • 首先,确保你正在使用与Flink 1.17.1兼容的Hive版本。不同的Flink版本可能对Hive方言的支持有所不同,因此需要确保你使用的Hive版本与Flink版本兼容。

    关于你提到的错误:java.lang.NoSuchMethodError: org.apache.commons.logging.LogFactory.release(Ljava/lang/ClassLoader;)V,这通常是由于类路径中存在多个版本的org.apache.commons.logging库导致的。

    以下是几个可能的解决方案:

    检查依赖冲突:确保你的项目中没有其他库引入了不同版本的org.apache.commons.logging库。你可以使用Maven的mvn dependency:tree命令来检查项目的依赖树,并查找是否有冲突的依赖。

    排除冲突的依赖:如果存在冲突的依赖,你可以尝试在Flink作业的构建配置中排除掉冲突的依赖。例如,如果你使用Maven构建Flink作业,可以在pom.xml文件中添加以下代码来排除冲突的依赖:

    xml


    your-dependency-groupId
    your-dependency-artifactId
    your-dependency-version


    commons-logging
    commons-logging



    确保依赖的版本正确:检查你的项目中是否正确引入了所需的org.apache.commons.logging库的版本,并确保没有引入其他冲突的版本。
    重新构建和打包:在做出上述更改后,重新构建和打包你的Flink作业,并确保将正确的JAR文件用于执行。
    检查Flink和Hive的版本兼容性:如前所述,确保你使用的Flink和Hive版本之间是兼容的。查看Flink的官方文档或相关社区讨论,以获取更多关于版本兼容性的信息。
    查看Flink和Hive的日志:启用Flink和Hive的详细日志记录,这可能有助于进一步诊断问题。检查日志中是否有其他错误或警告信息,这可能有助于定位问题的根源。

    2024-01-15 21:30:56
    赞同 展开评论 打赏
  • 在 Apache Flink 1.17.1 中使用 Hive 方言 (table.sql-dialect = hive) 时,如果遇到 NoSuchMethodError 类似于 java.lang.NoSuchMethodError: org.apache.commons.logging.LogFactory.release(Ljava/lang/ClassLoader;)V 的错误,这通常是由于类库版本冲突导致的。具体来说,这个问题是由于 Commons Logging 库的不同版本之间方法签名不兼容所引起的。

    为了修复这个问题,请尝试以下步骤:

    1. 检查和管理依赖版本:
      确保所有依赖(包括 Flink 自身、Hive 连接器及其依赖项)使用的 Commons Logging 版本是一致的。在 Maven 或 SBT 构建文件中,应锁定 Commons Logging 到与 Flink 和 Hive 兼容的版本。

    2. 排除冲突的依赖:
      如果有其他依赖项引入了不同版本的 Commons Logging,可以在项目中明确排除掉那些版本,只保留与 Flink 和 Hive 匹配的版本。

    3. 查看类路径:
      检查最终的类路径(classpath)以确认是否有多个 Commons Logging 版本同时存在。如果有,需要清理类路径,确保只有单个版本被加载。

    4. 手动添加或修改类路径:
      在某些情况下,可能需要手动在集群或 IDE 的类路径中加入正确的 Commons Logging 版本。

    5. 重启 Flink SQL 客户端或集群服务:
      修改类路径后,记得重启任何正在运行的服务或客户端,以便新更改生效。
      image.png

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

    你好,我注意到你提到的配置和依赖都符合官方推荐的方式。然而,我在搜索中找不到关于kava.lang.NoSuchMethodError这个错误的相关资料。这很可能意味着你遇到的是一个尚未公开报告的新问题,或者是一个罕见的 bug。

    有几个可能的方向供你探索:

    • 确保你的 Java 版本是最新的。这个错误经常出现在旧版 Java 库中,尤其是在使用 Hive 外言的情况下。
    • 如果你是从 Maven 或 Gradle 插件引入依赖,请确保你的项目依赖树中有正确的版本号。有时候,多个相同名的依赖会导致冲突,特别是在多模块项目中尤为常见。
    • 检查你的 Hadoop 集群是否更新到最新的版本。这个错误可能与 Hadoop 相关的库有关系。
    • 最后也是最重要的一步,就是仔细阅读错误堆栈信息,从中提取关键线索。一旦找到了引起问题的关键部分,你就能更有针对性地缩小范围,最终找到解决方案。
    2024-01-14 19:39:45
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Flink 1.17.1 的 Hive 方言时没有遇到过这个问题。请检查您的配置和依赖是否正确。如果您使用的是 Flink 1.17.1,那么您应该使用以下依赖:


    org.apache.flink
    flink-hive-compatibility_${scala.binary.version}
    1.17.1

    同时,确保您的 Hive 相关依赖(如 Hive 元数据服务、Hive 客户端等)已正确配置。
    如果您在创建 Hive 表时遇到问题,请检查您的表定义是否正确,以及 Hive 相关的配置是否正确。例如,确保您已经设置了 hive.metastore.uris 和 hive.metastore.warehouse.dir 等属性。

    2024-01-12 22:08:02
    赞同 展开评论 打赏
滑动查看更多

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载