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

各位咨询一下 Flink可以 把 metadata 放在 hive metastore 里吗?

各位咨询一下 Flink 1.17 + Iceberg 1.4.0 可以使用 HiveCatalog 把 metadata 放在 hive metastore 里吗?我用 sql-client 建的 Iceberg 表,指定了 'catalog-type'='hive',还是把 metadata 放在了 hdfs 目录里

展开
收起
真的很搞笑 2023-10-22 22:08:37 40 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,Flink 1.17 + Iceberg 1.4.0 可以使用 HiveCatalog 把 metadata 放在 Hive metastore 里。你可以通过指定 'catalog-type'='hive' 和 'warehouse'='hdfs://path/to/hive/warehouse/' 参数来实现这一点。这样,你的 Iceberg metadata 就会被保存在 Hive metastore 里,而不是在 HDFS 目录里。
    请注意,你需要确保你的 Hive metastore 和 HDFS 存储有正确的权限,并且能够正常工作。此外,你也需要确保你的 Hive metastore 和 HDFS 存储有足够的存储空间来存储你的 Iceberg metadata。
    最后,你需要确保你的 Flink 和 Iceberg 版本能够正确地工作在一起,并且能够正常地读取和写入你的 Hive metastore 和 HDFS 存储。

    2023-10-23 13:43:41
    赞同 展开评论 打赏
  • Flink 1.17 和 Iceberg 1.4.0 并不直接支持将 Iceberg 元数据存储在 Hive Metastore 中。这是因为这两个版本的 Flink 和 Iceberg 主要关注于支持新的 Iceberg特性,如动态列、分区管理等,而对 Hive Catalog 的支持并未得到充分优化。

    然而,你可以通过一些变通的方式来实现这个目标。一种可能的方法是使用 Iceberg 的内置 Catalog,然后将元数据存储在 Hive Metastore 中。这需要你自己实现一个自定义 Catalog,并将其注册到 Flink 中。这需要对 Flink 和 Iceberg 的内部实现有一定的了解,并且可能需要一些额外的开发工作。

    另一种可能的方法是等待 Flink 和 Iceberg 的下一个版本,它们可能会直接支持将元数据存储在 Hive Metastore 中。目前,Iceberg 已经支持将元数据存储在 Hive Metastore 中,只需要在创建表的时候指定 catalog-type 为 hive 即可。但是,Flink 目前还不支持这种功能。

    2023-10-23 11:00:12
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    Flink1.17+Iceberg1.4.0使用HiveCatalog是可以将metadata放在Hivemetastore里的。在你的设置中,你已经指定了'catalog-type'='hive',这表明你正在使用HiveCatalog。然而,你可能需要检查一下你的配置,确保'uri'参数设置为Hivemetastore的地址,以便Iceberg可以正确地将metadata存储在Hivemetastore里。另外可以学习一下如何使用管理HiveCatalog
    UI方式:
    进入元数据管理页面。
    登录实时计算控制台,在Flink全托管页签,单击目标工作空间操作列下的控制台。
    单击元数据管理。
    单击目标Catalog名称对应操作列的查看。
    单击目标数据库名称对应操作列的查看。
    单击创建表。
    在使用内置连接器连接页签,选择连接器后,单击下一步。
    填写建表语句并配置相关参数信息。代码示例如下。
    CREATETABLE${catalog_name}.${db_name}.${table_name}(
    idINT,
    nameSTRING
    )WITH(
    'connector'='hive'
    );
    单击确定。
    SQL方式:
    新建空白流作业草稿,详情请参见SQL作业开发。
    在文本编辑区域,输入建表语句。
    CREATETABLE${catalog_name}.${db_name}.${table_name}(
    idINT,
    nameSTRING
    )WITH(
    'connector'='hive'
    );
    选中建表语句,单击左侧代码行数上的运行。
    image.png
    ---来自管理Hive Catalog文档

    2023-10-23 10:47:39
    赞同 展开评论 打赏

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

相关产品

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

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