@guodong
2021-01-13T09:31:50.000000Z
字数 3198
阅读 802
数据迁移
版本 | 日期 | 修订者 | 变更内容 |
---|---|---|---|
1.0 | 2018-09-12 | 赵国栋 | 版本初定义 |
1.1 | 2018-09-26 | 赵国栋 | 1、vin,vid对照文件增加 获取部分车辆的脚本 2、完善HDFS数据补录增加补录脚本 |
1.2 | 2018-11-09 | 赵国栋 | 上传hdfs脚本支持多厂商,增加使用<厂商名称英文简写>作为文件名,防止文件冲突覆盖 |
1.3 | 2018-11-16 | 赵国栋 | 增加报文删除工具说明,修改HDFS数据补录章节 增加支持数据覆盖方法的描述 |
1.4 | 2019-02-25 | 赵国栋 | 增加前置机日志解析工具说明 |
数据迁移目前常见有2种情况
历史数据在托管平台需要我们帮助导出
执行步骤:
历史数据由用户提供
执行步骤:
登录待导出或者待导入平台的redis集群服务器,执行以下命令
echo 'hgetall XNY.CARINFO' |redis-cli > records
cat records|awk 'NR%2==1' > vins
cat records|awk 'NR%2==0' |awk -F',' '{print $1}' > vids
paste -d',' vins vids > info
最终生成的info文件即为对照文件,格式为 vin,vid
复制用户提供的vin粘贴到文本文件另存为 vin.txt,然后执行以下脚本
for i in `cat vin.txt`;do
vid=`echo 'hget XNY.CARINFO' $i|redis-cli |awk -F',' '{print $1}'`
if [ ! $vid ];then
continue
fi
echo $i,$vid >>info
done
最终生成的info文件即为对照文件,格式为 vin,vid
注意:如果是数据导出则需要在待导出的平台获取,如果是数据解析或者导入需要在目标平台再次获取,因为两个平台的对应关系可能不同,切记。。要不然会出现导入的数据不可查询或者数据错乱
导出工具下载地址:
svn://192.168.6.140/document/企业平台/企业平台升级部署/历史数据迁移工具/exportPacket.zip
文件结构说明
exportPacket
|-- lib 依赖包
|-- hadoop-java-api-1.0.0.jar 工具代码包
|-- hbase.properties 配置文件
使用之前根据平台信息修改配置文件
配置文件说明,hbase.properties
# HBase ZK地址,需要根据平台修改
hbase.zookeeper.quorum=192.168.2.128,192.168.2.129,192.168.2.140
# vin,vid对照文件路径,文件需要dos2unix,此文件可参照《vin,vid对照文件获取》章节来获取
vid2vin.file.path=/root/info.txt
# 结果文件路径 需要预先创建
result.file.path=/root/res/
# 导出数据的开始日期 13位毫秒数时间戳
start.row.timestamp=1431234000000
# 导出数据的结束日期 13位毫秒数时间戳
stop.row.timestamp=1526533200000
修改完毕配置文件之后执行以下命令即可导出
nohup java -cp hadoop-java-api-1.0.0.jar com.bitnei.main.ExportPacket &
程序包以及配置信息与 报文导出工具说明 章节完全一致,只需要执行以下脚本
nohup java -cp hadoop-java-api-1.0.0.jar com.bitnei.main.DeleteRealinfo <表名[packet或者realinfo]> &
工具下载地址
svn://192.168.6.140/document/企业平台/企业平台升级部署/历史数据迁移工具/split_source.tar.gz
先把term_gb_svr.log 日志拷贝到一个in的目录下
[/home/root]# mkdir in
[/home/root]# cp /opt/comm_app/lbs/log/ws/2019/02/22/term_gb_svr.log* in
[/home/root]# mkdir out
[/home/root]# ./split_source in/ out/
此工具输出的数据格式与报文导出工具导出的数据格式一致
输出的结果文件需要使用报文解析工具进行下一步操作
解析工具下载地址:
svn://192.168.6.140/document/企业平台/企业平台升级部署/历史数据迁移工具/offline_new_tools_packet.tar.gz
文件解压之后有一个可执行命令 offline_new_tools_packet
执行以下命令进行数据解析
./offline_new_tools_packet -d <源数据路径> -i <vinvid映射文件> -c <内部协议输出路径> -p <内部协议packet输出路径>
命令说明:
源数据路径: 指通过导出工具生成的文件或者厂商提供的数据文件路径,要求全路径
vinvid映射文件: 指《vin,vid对照文件获取》章节生成的对照文件
内部协议输出路径:解析过后的内部协议文件路径,后面会根据这些文件生成realinfo数据
内部协议packet输出路径:解析过后的packet文件路径,后面会根据这些文件生成packet数据
导入工具下载地址:
svn://192.168.6.140/document/企业平台/企业平台升级部署/历史数据迁移工具/import.zip
解压之后文件结构:
import
|-- realinfo.py 导入程序
|-- config.ini 配置文件
配置文件说明:
[info]
thrift_host = 192.168.6.104 hbaseThriftServer地址
root_paths = F:/test/2017,F:/test/2018 待导入文件的路径,可指定多个路径,每个路径会启动一个进程来处理
table_name = packet 导入的数据类型 packet:代表导入原始报文,realinfo:代表内部协议
启动导入程序之前,需要两个依赖项:
依赖项安装完毕后修改配置文件执行以下命令启动脚本:
nohup ./realinfo.py &
如果迁移后数据需要出报表则需要把realinfo数据上传hdfs
整个步骤可以使用以下脚本完成,此脚本需要在datenode节点所在服务器执行,如果数据传输错误需要重新上传请在上传脚本 hadoop put语句中增加 -f 参数强制覆盖
使用示例
./upload.sh <realinfo数据文件路径> <厂商名称英文简写(防止文件冲突覆盖)>