暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Apache Gravitino:大数据与机器学习统一元数据湖方案实践记录

大数据从业者 2025-08-25
1175

项目概述

Apache Gravitino是一个高性能、分布式且联邦式的元数据湖。它直接管理不同来源、不同类型和不同地区的元数据,还为用户提供对数据和人工智能资产的统一元数据访问方式。

Gravitino提供多项特性:支持分布式架构,作为多区域数据的单一事实来源;为用户和引擎提供统一的数据+人工智能资产管理;集中式安全管理,对不同来源进行统一的安全管控;内置数据管理、数据访问管理功能。

Gravitino使用元数据湖metalake作为数据的顶级容器,提供三级命名空间组织数据:目录(catalog)、模式/数据库(schemas/databases)和表/视图(tables/views)。

专业术语

    Metalake:元数据的容器/租户。通常一个团队拥有一个元湖,用于管理其中的所有元数据。


    Catalog:来自特定元数据源的元数据集合,每个目录都有一个相关的连接器。


    Schema:用于对元数据集合进行分组的第二级命名空间,关系型元数据源,模式可指代数据库/模式。在文件集和模型目录中,模式也可指代逻辑命名空间。


    Table:在支持关系型元数据源的目录中,表是对象层级结构中的最低级别。可以在目录中特定的模式下创建表。


    Fileset:文件集元数据对象指代文件系统中的一组文件和目录。文件集元数据对象用于管理文件的逻辑元数据。


    Model:模型元数据对象表示支持模型管理的特定目录中的元数据。


    Topic:主题元数据对象表示支持消息队列系统(如Kafka)主题管理特定目录的元数据。

    文章发布于微信公众号:大数据从业者,其它均为转载,原创不易,欢迎您点赞关注推荐转发,谢谢!

    源码编译

      Gradle 8.12.1


      openjdk version "17.0.2"


      git clone -b v0.9.1 


      https://github.com/apache/gravitino.git


      gradle clean assembleDistribution -x test

      安装部署

        cp mysql-connector-java-8.0.13.jar gravitino-0.9.1-bin/libs/
          mysql> create database gravitino;


          mysql> use gravitino;


          mysql> source /home/myHadoopCluster/gravitino-0.9.1-bin/scripts/mysql/schema-0.9.0-mysql.sql 

           

            vim conf/gravitino.conf

              mkdir -p home/myHadoopCluster/gravitino-0.9.1-bin/logs          


              ./bin/gravitino.sh start

               

                http://felixzh:8090/ui/metalakes

                Catalog类型

                Catalog类型分为四类:Relational、Fileset、Messaging、Model如图:

                每类catalog类型支持具体情况如下所示:

                Relational(8类)

                Iceberg、Hive、MySQL、PostgreSQL、

                Doris、Paimon、Hudi、OceanBase

                Fileset(1类)

                       Hadoop(s3、gcs、oss、adls)

                Messaging(1类)

                       Kafka

                Model(1类)

                       Model

                 案例1:Hive Catalog

                Apache Gravitino提供了将Apache Hive用作元数据管理目录的功能,通过Thrift协议访问 Hive元存储服务(HMS)。尽管官方说Hive目录使用Hive2元存储客户端,可以与Hive3元存储服务兼容。实际测试发现对接Hive3.1.3版本时候,需要调整3.1.3版本Jar,如下:

                重启Gravitino服务:

                  ./bin/gravitino.sh restart

                  通过UI界面化CREATE METALAKE、CREATE CATALOG,选择Hive,最小化配置HMS地址即可(支持Kerberos):

                  一旦成功连接HMS,可以对SCHEMA、TABLE进行各种DDL操作(create/delete等)!

                  案例2:Kafka Catalog

                  Kafka目录是一种消息目录,它提供了管理Apache Kafka主题元数据的能力。一个Kafka目录对应一个Kafka集群。通过UI界面化选择CREATE METALAKE(可选)、CREATE CATALOG,Messaging->Apache Kafka,最小化配置bootstrap.servers即可:

                  一旦成功连接Kafka,可以对Kafka Topic进行DDL操作,如创建、删除、修改配置等!

                  案例3:Hadoop Catalog

                  Hadoop目录是一种文件集目录,它使用Hadoop兼容文件系统(HCFS)来管理文件集的存储位置。目前,支持本地文件系统和 HDFS。Gravitino通过Hadoop目录支持S3、GCS、OSS和Azure Blob Storage。通过UI界面化选择CREATE METALAKE(可选)、CREATE CATALOG,Fileset->ApacheHadoop,最小化配置location即可:

                  注意:如果managed类型,删除Fileset的时候,Storage location目录会联动删除!目录即上图的:hdfs://felixzh:9001/fileset1。如果不想联动删除目录,创建Fileset时候可以使用另外一种类型External,如图所示:

                  案例4:Model Catalog

                  模型目录提供统一的接口,以集中方式管理机器学习模型的元数据。它遵循典型的 Gravitino 三级命名空间(目录、模式和模型)来管理机器学习模型的元数据。此外,它还支持为每个模型管理版本。模型管理的核心概念是管理模型的路径(URI)。模型元数据并非对模型存储路径进行物理上的单独管理,而是定义了模型名称与存储路径之间的映射关系。同时,借助模型元数据的可扩展属性支持,用户可以为模型元数据定义更详细的信息,而不仅仅是存储路径。通过UI界面化选择CREATE METALAKE(可选)、CREATE CATALOG,最小化配置Model URL即可:

                  总结

                  Gravitino是一款面向大数据与AI场景的高性能分布式元数据湖解决方案,核心价值在于通过统一的元数据管理层,解决跨区域、多源异构数据的治理难题。成为数据湖3.0时代的关键基础设施。文章发布于微信公众号:大数据从业者,其它均为转载,原创不易,欢迎您点赞关注推荐转发,谢谢!

                  文章转载自大数据从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论