OssImport系列之三——分布式部署

    xiaoxiao2022-07-15  137

    相关文章:OssImport系列之一——架构

    下载

    分布式部署目前只支持Linux,Windows暂不支持。

    分布式版本下载地址 ossimport-2.2.1.tar.gz ,下载到本地后,使用命令 tar -zxvf ossimport-2.2.0.tar.gz -C $HOME/ossimport 解压,解压后的文件结构如下:

    ossimport ├── bin │   ├── console.jar # Console模块jar包 │   ├── master.jar # Master模块jar包 │   ├── tracker.jar # Tracker模块jar包 │   └── worker.jar # Worker模块jar包 ├── conf │   ├── job.cfg # Job配置文件模板 │   ├── sys.properties # 系统运行参数配置文件 │   └── workers # Worker列表 ├── console.sh # 命令行工具,目前支持只Linux ├── logs # 日志目录 └── README.md # 说明文档,使用前请仔细阅读

    注意:

    OSS_IMPORT_HOME:OssImport的根目录,默认为解压命令中的目录 $HOME/ossimport ,也可以通过命令 export OSS_IMPORT_HOME=<dir> 或修改系统配置文件 $HOME/.bashrc 设置,推荐使用默认目录;OSS_IMPORT_WORK_DIR:OssImport的工作目录,通过 conf/sys.properties 的配置项 workingDir 指定,推荐为 $HOME/ossimport/workdir; OSS_IMPORT_HOME 或 OSS_IMPORT_WORK_DIR 请使用绝对路径配置,如 /home/<user>/ossimport 或 /home/<user>/ossimport/workdir。

    配置

    分布式部署有三个个配置文件conf/sys.properties、conf/local_job.cfg、conf/workers,配置项的含义请看 介绍 章节。

    conf/job.cfg:分布式模式下任务的配置文件模板,数据迁移前请按照实际参数修改; conf/sys.properties:系统运行参数配置文件,如工作目录、Worker运行参数等请在该文件中配置; conf/workers:worker列表。

    注意:

    请在提交任务前确认 sys.properties 和 local_job.cfg 中的参数,任务提交后参数无法再修改; Worker 列表 workers 请启动服务前确定,启动后无法再增加或删除。

    运行

    执行命令

    分布式部署时,执行任务的一般步骤是 修改任务配置文件 、 部署服务 、 清除同名任务 、 提交任务 、 启动迁移服务 、 查看任务状态 、 重试失败子任务 、 停止迁移任务 。详细说明如下:

    部署服务。执行Linux终端执行 bash console.sh deploy。 部署前请保证配置文件 conf/job.cfg、conf/workers 已经修改完成。 清除同名任务。如果运行过同名任务,需要从新执行任务,请先清除同名任务。如果没有运行过,或需要重试失败任务,不需要执行清除命令。Linux终端中执行 bash console.sh clean job_name。提交数据迁移任务。OssImport不能重复提交同名任务,如果有请请使用clean命令清除。提交任务需要指定任务的配置文件,任务的配置文件模板在 conf/job.cfg,建议在模板的基础上修改。Linux终端执行 bash console.sh submit [job_cfg_file],提交配置文件为 job_cfg_file 的任务,job_cfg_file 为可选参数,不指定是默认为 $OSS_IMPORT_HOME/conf/job.cfg,$OSS_IMPORT_HOME 默认为 console.sh 所在的目录。启动服务。Linux终端执行 bash console.sh start。查看任务状态。Linux终端执行 bash console.sh stat。失败Task重试。由于网络或其它原因,Task可能运行失败。失败重试只重试失败的Task,成功的Task不会重试。Linux下在终端执行 bash console.sh retry [job_name], job_name 为可选参数,指定时重试任务job_name的失败子任务,不指定job_name时重试所有任务的失败子任务。停止服务。Linux终端执行 bash console.sh stop。

    提示:

    bash console.sh 在参数错误时,会自动提示命令格式;配置文件和提交任务中的目录,推荐使用绝对目录;任务的配置,即 job.cfg 中的配置项, 提交后不能修改,请在提交前确定。

    常见任务失败原因

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

    任务状态及日志

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

    workdir ├── bin │   ├── console.jar # Console模块jar包 │   ├── master.jar # Master模块jar包 │   ├── tracker.jar # Tracker模块jar包 │   └── worker.jar # Worker模块jar包 ├── conf │   ├── job.cfg # Job配置文件模板 │   ├── sys.properties # 系统运行参数配置文件 │   └── workers # Worker列表 ├── logs │   ├── import.log # 归档日志 │   ├── master.log # Master日志 │   ├── tracker.log # Tracker日志 │   └── worker.log # Worker日志 ├── master │   ├── jobqueue # 存放尚未分解完成的任务 │   └── jobs # 存放任务运行状态 │   └── xxtooss # 任务名称 │      ├── checkpoints # Master分解Job到Task的checkpoint点记录 │      │   └── 0 │      │   └── ED09636A6EA24A292460866AFDD7A89A.cpt │      ├── dispatched # 已经分配给Worker尚未运行完成的Task │      │   └── 192.168.1.6 │      ├── failed_tasks # 运行失败的Task │      │   └── A41506C07BF1DF2A3EDB4CE31756B93F_1499348973217@192.168.1.6 │      │   ├── audit.log # Task运行日志,通过该日志可以查看错误原因 │      │   ├── DONE # Task运行成功标志,失败为空 │      │   ├── error.list # Task错误列表,可以查看错误文件列表 │      │   ├── STATUS # 任务状态标志文件,内容为Failed或Completed,表示子任务失败或成功 │     │   └── TASK # Task描述信息 │       ├── pending_tasks # 尚未分配的Task │       └── succeed_tasks # 成功运行的Task │   └── A41506C07BF1DF2A3EDB4CE31756B93F_1499668462358@192.168.1.6 │   ├── audit.log # Task运行日志,通过该日志可以查看错误原因 │   ├── DONE # Task运行成功标志 │   ├── error.list # Task错误列表,成功为空 │   ├── STATUS # 任务状态标志文件,内容为Failed或Completed,表示子任务失败或成功 │   └── TASK # Task描述信息 └── worker # Worker正在运行的Task状态,运行完成后由Master管理 └── jobs ├── local_test2 │   └── tasks └── local_test_4 └── tasks

    提示:

    Job运行状态查看 logs/tracker.log ,Worker的运行日志查看 logs/worker.log,Master的运行日志查看 logs/master.log;Task的失败原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log;Task的失败文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list。

    常见错误及排除

    请参看 常见错误及排除。

    相关文章:OssImport系列之一——架构

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)