1.部署AWS CLI客户端
安装AWS CLI客户端
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install python-pip -y
pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --upgrade pip
执行aws configure
会在/root/目录下生成.aws的目录,在目录下面会生成config和credentials文件,直接访问即可
config:配置桶的名称、参数、输出格式等,例:max_concurrent_requests配置最大并发连接数;
credentials:记录桶的aws_access_key_id及aws_secret_access_key(连接AWS);
2.配置迁移脚本,记录脚本运行时间并打印输出日志,
#!/bin/bash
mkdir sync_files
(time aws s3 sync s3://one/three/ s3://two/three/ > ./sync_files/3.sync_output.log &) >> ./sync_files/3.time.log 2>&1
one、two代表桶,three代表桶下的目录
3.等待脚本运行完(如果数据较大会比较耗时)
4.配置简单的清单列表
配置清单列表(及库存),在AWS管理控制台,点击桶—->管理—->清单—->添加清单—->添加清单名称—->目标存储桶—->选择输出格式(CSV/ORC)—->选择可选字段—->保存
清单用于源通及目标桶同步完成之后,进行对比,是否会有传输不成功的数据,重传即可。
清单生成之后会生成一个跟桶名称一样的目录,里面包含2018-06-11T08-00Z、data、hive目录;
2018-06-11T08-00Z:记录了输出的json格式文件及jsonMD5加密之后的checksum文件
data:记录的是清单文件的压缩文件
hive:兼容hive的文件
5.数据对比
源桶及目标桶返回CSV/ORC格式的文件后,使用大数据工具(可以使用athena, redshift, hive)将两个桶的inventory分别映射成两个表,使用sql语句比对两个表之间的不同,选出不同的文件后再次重传一次。