迁移半托管JindoFS集群数据到OSS-HDFS服务

本文介绍如何将半托管JindoFS集群迁移到OSS-HDFS服务。

前提条件

  • 半托管JindoFS集群对应的OSS Bucket已开通OSS-HDFS服务。

  • 半托管JindoFS集群已开启AuditLog。

  • 使用最新版本JindoSDK。下载地址,请参见GitHub

步骤一:全量迁移

全量迁移模式负责将半托管JindoFS集群中的某个目录中的元数据一次性全量迁移OSS-HDFS服务中的某个目录。目前仅支持迁移到OSS-HDFS服务中的一级子目录。

  • 命令格式

    jindo distjob -migrateImport -srcPath <srcPath> -destPath <destPath> -backendLoc <backendLoc>

    参数说明如下:

    参数

    说明

    -srcPath

    待迁移的半托管JindoFS集群的源路径。

    -destPath

    OSS-HDFS服务中存放半托管JindoFS集群的目标路径。

    -backendLoc

    半托管JindoFS集群的源数据块对应的OSS路径。

  • 使用示例

    将半托管JindoFS集群中某个目录jfs://mycluster/foo全量迁移到OSS-HDFS服务的bar目录中,OSS-HDFS服务所在的Bucket名称为examplebucket。

    jindo distjob -migrateImport -srcPath jfs://mycluster/foo -destPath oss://examplebucket/bar/

(可选)步骤二:增量迁移

  1. 生成ChangeLog。

    如果需要将半托管JindoFS集群增量迁移至OSS-HDFS服务,您需要通过Jindo工具将半托管JindoFS集群的AuditLog转换成对应目录的变更日志ChangeLog。

    • 命令格式

      jindo distjob -mkchangelog -auditLogDir <auditLogDir> -changeLogDir <changeLogDir> -startTime <startTime>

      参数说明如下:

      参数

      说明

      -auditLogDir

      半托管JindoFS集群的AuditLog所在路径。

      -changeLogDir

      变更日志ChangeLog输出路径。

      -startTime

      处理AuditLog的起始时间。

    • 使用示例

      半托管JindoFS集群中AuditLog的路径为oss://examplebucket/sysinfo/auditlog,待输出目录的变更日志存放在oss://examplebucket/sysinfo/changelog下,且只处理从20220601日开始的AuditLog。

      jindo distjob -mkchangelog -auditLogDir oss://examplebucket/sysinfo/auditlog -changeLogDir oss://examplebucket/sysinfo/changelog -startTime 2022-06-01T12:00:00Z
  2. 单次增量迁移。

    半托管JindoFS集群产生的元数据的增量更新会通过对应的AuditLog转换为ChangeLog,然后迁移至OSS-HDFS服务。

    • 命令格式

      jindo distjob -migrateImport -srcPath <srcPath> -destPath <destPath> -changeLogDir <changeLogDir> -backendLoc <backendLoc> -update

      参数说明如下:

      参数

      说明

      -srcPath

      待迁移的半托管JindoFS集群的源路径。

      -destPath

      OSS-HDFS服务中存放半托管JindoFS集群的目标路径。

      -changeLogDir

      变更日志ChangeLog输出路径。

      -backendLoc

      半托管JindoFS集群的源数据块对应的OSS路径。

      -update

      开启增量迁移模式。

    • 使用示例

      将半托管JindoFS集群中某个目录jfs://mycluster/foo增量迁移到OSS-HDFS服务的bar目录中,OSS-HDFS服务所在的Bucket名称为examplebucket,变更日志ChangeLog输出路径为oss://logbucket/logdir/

      jindo distjob -migrateImport -srcPath jfs://mycluster/foo -destPath oss://examplebucket/bar/ -changeLogDir oss://logbucket/logdir/ -backendLoc oss://examplebucket/jfsdataDir -update
  3. 可选:多次增量迁移。

    如果需要将半托管JindoFS集群中多次增量迁移到OSS-HDFS服务,您可以通过修改-startTime参数自定义处理Auditlog的起始时间,然后多次重复步骤1步骤2