本文介绍如何单机部署ossimport,单机部署支持Linux和Windows系统。
背景信息
已安装Java 1.7及1.8版本。
快速使用
运行方式
单机模式下,数据迁移任务有以下两种执行方式:
- 一键导入:是对所有步骤的封装,按照脚本提示执行即可完成数据迁移。快速使用步骤使用的是这种执行方式,对于初级用户建议使用一键导入 。 
       - 执行一键导入。 
         - Window系统下在双击运行import.bat。
- Linux终端中执行bash import.sh命令。
 说明 如果之前执行过程序,会提示是否从上次的断点处继续执行,或者重新执行同步任务。对新的数据迁移任务,或者修改了同步的源端/目的端,请选择重新执行。
- Windows下任务开始后,会打开一个新的cmd窗口执行同步任务并显示日志,旧窗口会每隔10秒打印一次任务状态,数据迁移期间不要关闭两个窗口;Linux下服务在后台执行。
- 当Job完成后,如果发现有任务失败了,会提示是否重试。输入y重试,输入n则跳过退出。
- 如果上传失败,请查看master/jobs/local_test/failed_tasks/<tasktaskid>/audit.log文件,确定失败原因。
 
- 执行一键导入。 
         
- 分步执行:执行启动服务、提交任务、重试失败子任务等步骤。 
       - 清除同名任务。 
         如果以前运行过同名任务,需要重新执行任务,请先清除同名任务。如果没有运行过,或需要重试失败任务,不要执行清除命令。- Window下在cmd.exe中执行console.bat clean。
- Linux下在终端执行bash console.sh clean。
 
- 提交数据迁移任务。 
         ossimport不能提交同名任务,如果有请先清除。提交任务的配置文件为 conf/local_job.cfg,默认任务名称为local_test。提交任务的命令:- Window下在cmd.exe中执行console.bat submit。
- Linux下在终端执行bash console.sh submit。
 
- 启动服务。 
         - Windows下在cmd.exe中执行console.bat start。
- Linux下在终端执行bash console.sh start。
 
- 查看任务状态。 
         - Windows下在cmd.exe中执行console.bat stat。
- Linux下在终端执行bash console.sh stat。
 
- 失败Task重试。 
         由于网络或其它原因,子任务可能失败。失败重试只重试失败的Task,不会重试成功的Task。- Windows下在cmd.exe中执行console.bat retry。
- Linux下在终端执行bash console.sh retry。
 
- 停止服务。 
         - Windows下关闭窗口%JAVA_HOME%/bin/java.exe。
- Linux下载终端执行bash console.sh stop。
 
 
- 清除同名任务。 
         
任务状态及日志
       任务提交后,Master分解成Task,由Worker执行Task,Tracker收集Task状态。任务运行完成后ossimport目录内容如下: 
       
        
        
     
 
    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.log或logs/import.log。
- Task的失败原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log。
- Task的失败文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list。
- 上述日志仅作为排查问题时的参考,您的业务和应用不要依赖于该内容。
迁移失败常见原因
- 上传过程中源目录的文件发生了修改,log/audit.log里会提示SIZE_NOT_MATCH相关字样的错误,这种情况下老的文件已经上传成功,新的修改没有上传到OSS。
- 源文件在上传过程中被删除,导致迁移失败。
- 源文件名不符合OSS命名规范(不能以/开头,不能为空),导致上传到OSS失败。
- 因网络异常、账号权限不足等原因导致的下载数据源文件失败,可查看logs/ossimport2.log或logs/import.log确定错误原因。
- 程序异常退出,任务状态为Abort 。这种情况请联系售后技术支持。