ossimport使用说明

警告
本文最后更新于 2022-07-01,文中内容可能已过时。

摘要

本文介绍如何单击部署ossimport,单机部署支持Linux和Windows系统。

单机版本下载地址ossimport-2.3.4.zip ,下载到本地后,使用工具或命令unzip解压,解压后的文件结构如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
ossimport
├── bin
│   └── ossimport2.jar  # 包括Master、Worker、TaskTracker、Console四个模块的总jar
├── conf
│   ├── local_job.cfg   # Job配置文件
│   └── sys.properties  # 系统运行参数配置文件
├── console.bat         # Windows命令行,可以分布执行调入任务
├── console.sh          # Linux命令行,可以分布执行调入任务
├── import.bat          # Windows一键导入,执行配置文件为conf/local_job.cfg配置的数据迁移任务,包括启动、迁移、校验、重试
├── import.sh           # Linux一键导入,执行配置文件为conf/local_job.cfg配置的数据迁移任务,包括启动、迁移、校验、重试
├── logs                # 日志目录
└── README.md           # 说明文档,强烈建议使用前仔细阅读

单机版本有两个配置文件conf/sys.propertiesconf/local_job.cfg。注意不要修改以下内容:

  • conf/sys.properties中的配置项 workingDirworkerUserNameworkerPasswordprivateKeyFile
  • conf/local_job.cfg的名称、位置、配置项jobName

其它配置项请按照实际需求配置。

说明 请在提交任务前确认sys.propertieslocal_job.cfg中的参数,任务提交后参数无法再修改。

单机模式下,数据迁移任务有以下两种执行方式:

  • 一键导入:是对所有步骤的封装,按照脚本提示执行即可完成数据迁移。
  • 分步执行:执行启动服务、提交任务、重试失败子任务等步骤。

说明 对于初级用户建议使用一键导入 。

    1. 执行一键导入,Window系统下在cmd.exe中执行import.bat,Linux终端中执行 bash import.sh
    2. 如果之前执行过程序,会提示是否从上次的断点处继续执行,或者重新执行同步任务。对新的数据迁移任务,或者修改了同步的源端/目的端,请选择重新执行。
    3. Windows下任务开始后,会打开一个新的cmd窗口执行同步任务并显示日志,旧窗口会每隔10秒打印一次任务状态,数据迁移期间不要关闭两个窗口;Linux下服务在后台执行。
    4. 当 Job 完成后,如果发现有任务失败了,会提示是否重试,输入y重试,输入n则跳过退出。
    5. 如果上传失败,请打开文件master/jobs/local_test/failed_tasks/<tasktaskid>/audit.log查看,确定失败原因。
  • 分步执行

    说明 没有特殊需要,请使用 一键导入方式迁移数据。

    1. 清除同名任务。

      如果以前运行过同名任务,需要重新执行任务,请先清除同名任务。如果没有运行过,或需要重试失败任务,不要执行清除命令。

      Window下在cmd.exe中执行console.bat clean

      Linux下在终端执行./console.sh clean

    2. 提交数据迁移任务。

      OssImport不能提交同名任务,如果有请先清除。提交任务的配置文件为conf/local_job.cfg,默认任务名称为local_test

      提交任务的命令

      Window下在cmd.exe 中执行 console.bat submit

      Linux下在终端执行 ./console.sh submit

    3. 启动服务。

      Windows下在cmd.exe中执行console.bat start

      Linux下在终端执行./console.sh start

    4. 查看任务状态。

      Windows下在cmd.exe中执行console.bat stat

      Linux下在终端执行./console.sh stat

    5. 失败Task重试。

      由于网络或其它原因,子任务可能失败。失败重试只重试失败的Task,不会重试成功的Task。

      Windows下在cmd.exe中执行console.bat retry

      Linux下在终端执行./console.sh retry

    6. 停止服务。

      Windows下关闭窗口%JAVA_HOME%/bin/java.exe

      Linux下在终端执行 ./console.sh stop

  • 常见失败原因

    • 上传过程中源目录的文件发生了修改,log/audit.log里会提示SIZE_NOT_MATCH相关字样的错误,这种情况下老的文件已经上传成功,新的修改没有上传到OSS;
    • 源文件在上传过程中被删除,导致下载的时候失败;
    • 源文件名不符合OSS命名规范(不能以/开头,不能为空),导致上传到OSS失败;
    • 下载数据源文件失败;
    • 程序异常退出,任务状态为 Abort ,这种情况请联系我们。
  • 任务状态及日志

    任务提交后,Master分解成Task,有Worker执行Task,Tracker收集Task状态。任务运行完成后ossimport目录内容如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    
    ossimport
    ├── bin
    │   └── ossimport2.jar    # 单机版jar
    ├── conf
    │   ├── local_job.cfg     # Job配置文件
    │   └── sys.properties    # 系统运行参数配置文件
    ├── console.sh            # 命令行工具
    ├── import.sh             # 一键导入脚本
    ├── logs
    │   ├── import.log        # 迁移日志
    │   ├── job_stat.log      # 任务状态记录
    │   ├── ossimport2.log    # 单机版运行日志
    │   └── submit.log        # 任务提交记录
    ├── master
    │   ├── jobqueue                # 存放尚未分解完成的任务
    │   └── jobs                    # 存放任务运行状态
    │       └── local_test          # 任务名称
    │           ├── checkpoints     # Master分解Job到Task的checkpoint点记录
    │           │   └── 0
    │           │       └── 034DC9DD2860B0CFE884242BC6FF92E7.cpt
    │           ├── dispatched      # 已经分配给Worker尚未运行完成的Task
    │           │   └── localhost
    │           ├── failed_tasks    # 运行失败的Task
    │           ├── pending_tasks   # 尚未分配的Task
    │           └── succeed_tasks   # 成功运行的Task
    │               └── A41506C07BF1DF2A3EDB4CE31756B93F_1499744514501@localhost
    │                   ├── audit.log   # Task运行日志,通过该日志可以查看错误原因
    │                   ├── DONE        # Task运行成功标志
    │                   ├── error.list  # Task错误列表,可以查看错误文件列表
    │                   ├── STATUS      # 任务状态标志文件,内容为Failed或Completed,表示子任务失败或成功
    │                   └── TASK        # Task描述信息
    └── worker      # Worker正在运行的Task状态,运行完成后由Master管理
        └── jobs
            └── local_test
                └── tasks
    

    注意

    • Job运行信息,可以查看logs/ossimport2.loglogs/import.log
    • Task的失败原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
    • Task的失败文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list
    • 上述日志仅作为排查问题时的参考,您的业务和应用不要依赖于该内容。

参考链接:

https://help.aliyun.com/document_detail/56990.html

相关内容