You need to enable JavaScript to run this app.
文档中心
复制全文
下载 pdf
元数据管理
LAS Catalog 元数据备份与恢复
复制全文
下载 pdf
LAS Catalog 元数据备份与恢复

LAS 为您提供 LAS Catalog 元数据备份与恢复工具 lf-exporter,您可使用此工具实现元数据(catalog、database、table、partition、function)的同地域、跨地域灾备。本文为您介绍 lf-exporter 工具的使用要点和灾备方案建议。

工作原理

LAS Catalog 元数据备份与恢复工具 lf-exporter 以 火山引擎 EMR Serverless Spark 作业运行,您在获取工具包后,通过配置 YAML 配置文件,提交EMR Serverless Spark 作业来调用 lf-exporter 工具,实现 LAS Catalog 元数据备份与恢复。
其中,YAML 配置文件中参数 mode用于指定 LAS Catalog 元数据的备份与恢复的运行模式,支持以下四种场景元数据的备份与恢复。

mode

语义

典型用途

las_to_tos

从 LAS Catalog 读取元数据并备份到 TOS(JSON 格式),详情请参见下文的参考文档:参考:配置参数列表

日常备份、跨 Region 灾备的备份侧

tos_to_las

从 TOS 备份恢复元数据到 LAS Catalog,恢复默认采用“存在则跳过”的幂等策略,适合重复执行与失败重试。

同 Region / 跨 Region 元数据恢复、灾备演练

las_to_hive

从 LAS Catalog 直接导入到 Hive Metastore

Catalog 元数据从 LAS 向 Hive 同步或迁移

tos_to_hive

从 TOS 备份恢复元数据到 Hive Metastore

先备份、后恢复到 Hive 的场景

使用 lf-exporter 工具时,在完成必要的准备工作后,各场景的通用操作流程为:配置 YAML 配置文件 > 运行 EMR Serverless 作业调用工具 > 确认结果。
以下为您介绍 lf-exporter 工具在不同场景下的详细使用指导。

准备工作

依赖的产品

准备工作

操作指导

EMR Serverless 队列

LAS Catalog 元数据备份与恢复工具 lf-exporter 以 火山引擎 EMR Serverless Spark 作业运行,因此,您需要先开通 EMR Serverless 队列资源。

TOS

使用 lf-exporter 工具时,需将工具包、EMR Serverless Spark 作业配置文件上传至 TOS 便于作业运行时读取;通常也需要将元数据导出至 TOS 备份,因此您需要开通 TOS 并结合数据备份与恢复的需要,创建对应的 TOS Bucket。

IAM

使用 lf-exporter 工具时,会使用火山引擎账号的 AK、SK信息进行认证鉴权,因此您需要先获取用户的AK、SK信息。

  • 备份与恢复默认遵循“按当前身份权限执行”的原则:能读到的对象会被备份,恢复时也只会对当前身份有权限检查或创建的对象生效。
  • 跨 Region 灾备常见需要同时具备:LAS Catalog 访问权限与 TOS 访问权限。建议优先使用具备最小权限的子账号,并通过 STS 或固定 AK/SK 在 Serverless Spark 侧完成鉴权。

lf-exporter 工具使用

step 1:获取lf-exporter 工具

您需要先获取lf-exporter 工具并上传到 TOS,便于后续运行 EMR Serverless Spark 作业时选用。

wget https://lasformation-cn-beijing.tos-cn-beijing.volces.com/las-exporter/application.jar

step 2:准备 YAML 配置文件

基于使用场景,准备好 YAML 配置文件,下面为您示例各场景下的 YAML 配置文件示例。

  • 实际使用时请根据实际情况替换 ${AK}${SK} 、TOS 路径等相关参数。
  • 全量的配置参数列表及参数说明请参见下文的:参考:配置参数列表

以下为将 LAS Catalog 元数据导出备份到TOS场景下,YAML 配置文件的示例:las_to_tos.yaml。

mode: las_to_tos
lasClientInfo:
  akMode: MANUAL
  accessKeyId: "${AK}"
  accessKeySecret: "${SK}"
  endPoint: thrift://lakeformation.las.cn-beijing.ivolces.com:48869
  regionId: cn-beijing
runOptions:
  includeCatalogPrefixs: []
  includeDatabasePrefixs: []
  includeTablePrefixs: []
  objectTypes: [catalog, database, table, partition, function]
  permissionDeniedStrategy: skip
  outputBaseDir: tos://backup-bucket/las_exporter/
  auditOutputDir: tos://backup-bucket/las_exporter_audit/

step 3:将工具包、配置文件上传至 TOS

将工具包、配置文件上传至 TOS Bucket,便于后续提交运行 EMR Serverless Spark 作业时引用。上传文件至 TOS Bucket 的操作详情请参见:上传文件

step 4:提交 Serverless Spark 作业

  1. 登录并进入 EMR 控制台,在作业管理页面提交一个 Spark JAR 作业,详细作业提交操作指导请参见 EMR 官网文档:提交 Spark JAR 作业
    Image

  2. 在作业内容中,配置调用 lf-exporter 工具相关的作业内容。下面是一个 SparkJar JSON 任务参数模板,您可参考模版根据实际情况修改其中的参数即可。

    {
        "JobType": "SparkJar",
        "VolcanoQueue": null,
        "StorageMounts": [],
        "MainClass": "bytedance.olap.las.Exporter",
        "MainApplicationFile": "tos://las_exporter/application.jar",
        "Jars": [],
        "Files": [
            "tos://las_exporter/tos_to_las.yaml"
        ],
        "PyFiles": null,
        "Archives": [],
        "SparkConf": "spark.sql.adaptive.enabled=false,spark.driver.cores=1,spark.driver.memory=4G,spark.executor.cores=2,spark.executor.memory=4G,spark.executor.instances=2,spark.sql.shuffle.partitions=200,serverless.spark.access.key=AKLTN******,serverless.spark.secret.key=TnpBe******",
        "MainArguments": "tos://las_exporter/tos_to_las.yaml"
    }
    

    其中:

  • MainApplicationFile:配置为 lf-exporter 工具 JAR包上传至 TOS Bucket 后的 TOS 路径地址。
  • Files:配置为对应任务的 YAML 配置文件上传至 TOS Bucket 后的 TOS 路径地址。
  • MainArguments:配置为对应任务的 YAML 配置文件上传至 TOS Bucket 后的 TOS 路径地址。
  • SparkConf:
    • serverless.spark.access.key、serverless.spark.secret.key:配置为准备工作中已获取的具有访问 TOS、Catalog 权限的AK、SK。

step 5:确认备份/恢复结果

  • 备份成功后:
    • outputBaseDir 下可以看到按日期分区的备份目录,并包含各对象类型 JSON(例如 catalogs/databases/tables/partitions/functions/)。产物的组织方式详情请参见下文的参考:备份产物组织方式
    • 若配置了 auditOutputDir,还会输出审计 summary 便于确认“是否全量成功”。
  • 恢复完成后:
    • 可以在 LAS Catalog 控制台或通过引擎侧查询确认 catalog、db、table、partition、function 已可见。
    • 恢复默认采用“存在则跳过”的幂等策略,适合重复执行与失败重试。

应用实践:LAS Catalog 异地冷备

灾备方案建议

  • 基于 lf-exporter 工具进行灾备方案规划时,由于 lf-exporter 工具当前不复制数据文件,跨 Region 灾备要实现数据可用,需要额外的数据文件复制链路,常见实现方式包括对象存储 TOS 跨 Region 复制、或在可控计算环境中使用目录级复制工具。
    Image
  • 数据文件灾备的关键输入来自元数据备份中 Table.sd.locationPartition.sd.locationFunction.resourceUris[].uri。建议先从备份 JSON 抽取这些 location 前缀,结合 locationMappings 计算目标前缀,再对目标前缀做一致性校验,并将校验结果作为元数据恢复的前置门禁。

注意

Iceberg 场景需要额外注意:locationMappings 只会改 metastore 中的 location,不会改 Iceberg metadata 或 manifest 文件中的内部绝对路径。如果 Iceberg 物理文件整体迁移,可能还需要额外做 Iceberg 层的数据迁移或路径重写。

容灾配置

异地冷备场景下,以使用 TOS 跨 Region 复制为例,为您示例配置流程。

  1. 参考lf-exporter 工具的通用使用流程,基于 las_to_tos 任务场景的配置,将 LAS Catalog 元数据备份至同地域的 TOS Bucket。
  2. 使用 TOS 的跨区域复制功能,将备份至 TOS 的元数据跨区域复制到另外一个地域的 Bucket 中,例如,将华北地域 Bucket 内容复制到华东地域 Bucket。配置详情请参见:TOS 跨区分复制参考文档
  3. 跨区域复制规则创建并完成同步后,您可以在异地 Bucket 中检查复制结果。

异常恢复

当主服务地域的元数据出现异常时,您可将备份至 TOS 的元数据恢复至 LAS,核心流程如下。

  1. 您可以在主服务地域中创建一个新的 TOS Bucket,用于恢复元数据存储。
  2. 您可使用 TOS 的跨 Region 复制功能,将异地 Bucket 的元数据复制回同地域的恢复 Bucket中。配置详情请参见:TOS 跨区分复制参考文档

    注意

    备份至 TOS 的LAS Catalog 元数据为序列化后的 JSON ,并按日期分区目录进行存储,请参见下文的参考:备份产物组织方式。您在恢复时,需明确需要恢复的分期日期目录。

  3. 参考lf-exporter 工具的通用使用流程,基于 tos_to_las 任务场景的配置,将 TOS Bucket 中的元数据恢复至同地域的 LAS Catalog。
  4. 作业运行完成后,前往 LAS 中查看恢复结果。

参考:备份产物组织方式

las_to_tos 模式下,元数据对象会序列化为 JSON,并按对象类型落在 runOptions.outputBaseDir 的日期分区目录中。恢复模式(tos_to_las / tos_to_hive)需要将 runOptions.inputBaseDir 指向某一次备份的日期目录。

说明

恢复时 inputBaseDir 需要精确到某个备份日期目录(例如 .../backup/2026-01-16/),而不是备份根目录。

参考:配置参数列表

下表罗列了备份配置中用到的参数说明。

配置块

参数

当前代码/默认值

适用模式

当前说明

顶层

mode

必填;支持 las_to_toslas_to_hivetos_to_hivetos_to_las

全部

代码校验见 lf-exporter/src/main/java/bytedance/olap/las/ExporterConfig.java:95

lasClientInfo

akMode

MANUAL / AUTO

全部

代码字段保留两种;当前场景优先使用 MANUAL

lasClientInfo

accessKeyId

MANUAL 时必填

全部

访问 LAS 元数据使用

lasClientInfo

accessKeySecret

MANUAL 时必填

全部

访问 LAS 元数据使用

lasClientInfo

securityToken

可选

全部

STS 场景可带上

lasClientInfo

assumeRole

可选

全部

代码字段保留,按实际鉴权链路使用

lasClientInfo

endPoint

必填

全部

当前文档统一使用 thrift://lakeformation.las.cn-beijing.ivolces.com:48869 这类地址

lasClientInfo

regionId

必填

全部

需要和目标 Region 对齐

lasClientInfo

env

空串或环境名

全部

线上通常留空;非线上环境按实际填写

hmsClientInfo

hiveConfPath

常见默认 /etc/emr/hive/conf/hive-site.xml

las_to_hivetos_to_hive

半托管 Hive 常用

hmsClientInfo

kerberosInfo.principal / kerberosInfo.keytab

可选

las_to_hivetos_to_hive

仅 Kerberos 打开的 Hive 需要

hmsClientInfo

metastoreUris

可选

las_to_hivetos_to_hive

直连 HMS 时使用

hmsClientInfo

jdbcDriver / jdbcUri / jdbcUserName / jdbcPassword

可选

las_to_hivetos_to_hive

Catalog 相关写入会用到 JDBC

runOptions

includeCatalogPrefixs

空表示不过滤

全部

前缀匹配 catalog

runOptions

includeDatabasePrefixs

空表示不过滤

全部

前缀匹配 database

runOptions

includeTablePrefixs

空表示不过滤

全部

前缀匹配 table

runOptions

includeFunctionPrefixs

空表示不过滤

全部

前缀匹配 function;历史表格里有,代码里也仍支持

runOptions

objectTypes

必填

全部

支持 catalogdatabasetablepartitionfunction

runOptions

batchSize

默认 1000

tos_to_hivetos_to_las、大分区导入相关

主要控制分区批量写入

runOptions

sparkTaskBatchSize

默认 200000

tos_to_hivetos_to_las

影响任务切分粒度

runOptions

outputBaseDir

las_to_tos 必填

las_to_tos

导出目录;实际会自动追加日期分区

runOptions

inputBaseDir

tos_* 模式必填

tos_to_hivetos_to_las

指向某天备份根目录,例如 tos://bucket/las_exporter/2026-04-14/

runOptions

locationMappings

可选

tos_to_hivetos_to_las

恢复时做 location 前缀替换;要求 source/target/ 结尾

runOptions

permissionDeniedStrategy

默认 skip

全部

支持 skip / fail

runOptions

auditOutputDir

可选

全部

配置后会把审计 summary 额外落到 TOS

最近更新时间:2026.04.16 20:13:33
这个页面对您有帮助吗?
有用
有用
无用
无用