本文共 4480 字,大约阅读时间需要 14 分钟。
分布式部署目前只支持Linux,Windows暂不支持。
分布式版本下载地址 ,下载到本地后,使用命令 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 # 说明文档,使用前请仔细阅读
注意:
$HOME/ossimport
,也可以通过命令 export OSS_IMPORT_HOME=<dir>
或修改系统配置文件 $HOME/.bashrc
设置,推荐使用默认目录;conf/sys.properties
的配置项 workingDir
指定,推荐为 $HOME/ossimport/workdir
;/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
中的参数,任务提交后参数无法再修改;workers
请启动服务前确定,启动后无法再增加或删除。分布式部署时,执行任务的一般步骤是 修改任务配置文件 、 部署服务 、 清除同名任务 、 提交任务 、 启动迁移服务 、 查看任务状态 、 重试失败子任务 、 停止迁移任务 。详细说明如下:
bash console.sh deploy
。 部署前请保证配置文件 conf/job.cfg、conf/workers 已经修改完成。 bash console.sh clean job_name
。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
所在的目录。bash console.sh start
。bash console.sh stat
。bash console.sh retry [job_name]
, job_name 为可选参数,指定时重试任务job_name
的失败子任务,不指定job_name
时重试所有任务的失败子任务。bash console.sh stop
。提示:
bash console.sh
在参数错误时,会自动提示命令格式;log/audit.log
里会提示SIZE_NOT_MATCH
相关字样的错误,这种情况下老的文件已经上传成功,新的修改没有上传到OSS;任务提交后,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
提示:
logs/tracker.log
,Worker的运行日志查看 logs/worker.log
,Master的运行日志查看 logs/master.log
;master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
;master/jobs/${JobName}/failed_tasks/${TaskName}/error.list
。请参看 。
转载地址:http://ghpfo.baihongyu.com/