OssImport系列之二——单机部署

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

下载

单机部署支持Linux、Windows。

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

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 中的参数,任务提交后参数无法再修改。

运行

单机模式下,数据迁移任务有两种执行方式 一键导入分步执行一键导入 ,是对所有步骤的封装,按照脚本提示执行即可完成数据迁移。 分步执行 ,执行启动服务、提交任务、重试失败子任务等步骤。 对于初级用户强烈建议使用一键导入

单机模式的配置文件是conf/local_job.cfg,数据迁移前请安装实际需求修改任务参数。默认任务名称为local_test,请不要修改。

一键导入

  • 执行一键导入,Window在 cmd.exe 中执行 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

注意

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

常见失败原因

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

任务状态及日志

任务提交后,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运行信息,可以查看log/ossimport2.log
  • Task的失败原因,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log
  • Task的失败文件,可以查看master/jobs/${JobName}/failed_tasks/${TaskName}/error.list

常见错误及排除

请参看 常见错误及排除。

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

时间: 2024-09-20 00:16:03

OssImport系列之二——单机部署的相关文章

ETCD系列之二:部署集群

ETCD系列之二:部署集群 1. 概述 想必很多人都知道ZooKeeper,通常用作配置共享和服务发现.和它类似,ETCD算是一个非常优秀的后起之秀了.本文重点不在描述他们之间的不同点.首先,看看其官网关于ETCD的描述1: A distributed, reliable key-value store for the most critical data of a distributed system. 在云计算大行其道的今天,ETCD有很多典型的使用场景.常言道,熟悉一个系统先从部署开始.本

OssImport系列之一——架构

相关文章:OssImport系列之二--单机部署相关文章:OssImport系列之三--分布式部署 概述 OssImport工具可以将本地.其它云存储的数据迁移到OSS,它有以下特点: 支持的丰富的数据源,有本地.七牛.百度BOS.AWS S3.Azure Blob.又拍云.腾讯云COS.金山KS3.HTTP.OSS等,并可根据需要扩展: 支持断点续传: 支持流量控制: 支持迁移指定时间后的文件.特定前缀的文件: 支持并行数据下载.上传: 支持单机模式和分布式模式,单机模式部署简单使用方便,分布

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

相关文章: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模

OssImport系列之四——最佳实践

相关文章:OssImport系列之一--架构 本文主要介绍,OssImport在典型场景下应用,典型需求的实现. 单机与分布式 OssImport有 单机模式 和 分布式模式 两种部署方式.对于小于 30TB 的小规模数据数据迁移,单机模式即可完成.对于大规模的数据迁移,请使用分布式模式. 分时限流 Worker有限流功能,通过修改配置文件sys.properties的配置项workerMaxThroughput(KB/s)实现,该配项不是动态生效的,修改后需要重启服务才能生效.分布式部署情况下

C#微信公众号开发系列教程二(新手接入指南)

原文:C#微信公众号开发系列教程二(新手接入指南) 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南)   微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微信服务器将接收到的消息post到用

xen虚拟化实战系列(十二)之xen虚拟机高可用之在线迁移

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1286643 xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装xen虚拟化实战系列(二)之xen虚拟机安装xen虚拟化实战系列(三)之xen虚拟机复制xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法xen虚拟化实战系列(六)之x

Docker生态系统系列之二:容器化综述

本文讲的是Docker生态系统系列之二:容器化综述,[编者的话]本篇文章是介绍Docker生态系统的第二篇,该文章首先简要介绍了Linux容器化的历史,然后介绍容器化的优点,再讨论Dockerfile的优点,最后讨论了容器化应用的架构. 应用的迁移部署是一件非常复杂的事情.我们不仅要针对每个环境单独调整,可能还会面临其它的问题,比如检查依赖.扩展应用.在不影响整体应用的情况下单独更新组件. Docker容器化的思想和面向服务式的设计模式试图解决这些问题.应用程序可以拆分为可管理的且按功能划分的组

持续交付系列(二):使用Docker、Mesos实现持续交付

本文讲的是持续交付系列(二):使用Docker.Mesos实现持续交付,[编者的话]本文主要介绍Mesos和Marathon的搭建以及如何完成整个持续交付过程,以及后续还可以做哪些改进和加强.整个系统搭建完成后,应用代码的改变会自动触发Jenkins构建流程,几秒钟后,改变就会通过Jenkins.Docker Hub和Marathon传递到Mesos中部署上线,是不是很酷? 第一部分(中文翻译)我们介绍了如何Docker化一个Node.js应用,如何使用Fig部署Jenkins和Docker R

Silverlight &amp;amp; Blend动画设计系列十二

Silverlight & Blend动画设计系列十二:三角函数(Trigonometry)动画之自由旋转(Free-form rotation) 说到对象的旋转,或许就会联想到对象角度的概念.对象的旋转实现实际上就是利用对象 的角度改变来实现的位置变换,在<Silverlight & Blend动画设计系列二:旋转动画( RotateTransform)>一文中有对对象的不同角度变换的实现介绍,本篇要介绍的自由旋转( Free-form rotation)将借助<Fun