es迁移简记

方式1. reindex (适用于单一集群或多集群同网络)

方式2. 中间使用esm迁移
       2.1(方式1 网络隔离)
         2.1.1 原始集群 es001---->download------>local------->upload------>oss
         2.1.1 目标集群 oss------>download------>local------->es002
       
       2.2(方式2 网络连通)
         2.2.1 create index(避免一些问题)
         2.2.2 esm导入数据
方式1

1.索引快照
    _reindex新索引 bak_index_001
2.下载数据
   ./esm -s $host -x $index -c 5000--sort=id  --refresh -o=$local_file_path
3.上传数据oss\压缩
   gzip -d *

4.目标机器下载oss

5.如有必要拆分(机器资源限制比如只有16G)
   split -l 130000 esm_a.json.json local_file_path_split_

6.写入目标集群
for i in `ls tmp_private/local_file_path_split_*`;
do
  private_path="./$i"
  echo $target_host
  echo $target_index
  echo $private_path
  ./esm -d $target_host -y $target_index  -c 500 -b 1 --refresh -i=$private_path
done

7.验证
1.原始集群获取索引结构
for idx in `curl "$src_host/_cat/indices?h=index"`;
do
  echo "$idx"
  mkdir -p es/es001
  curl $src_host/$idx > es/es001/$idx.txt
done

2.解析数据并且创建索引
 yum install epel-release
 yum install jq
 
des_host=""

for file in `ls`;
do
    echo $file
	i=`echo $file|cut -d "." -f 1`
	echo $i
	cmd="jq 'del(.$i.settings.index.uuid,.$i.settings.index.version,.$i.settings.index.provided_name,.$i.settings.index.creation_date)' $file"
	echo $cmd
	js=`bash -c "$cmd"|jq -c .$i`
	cmd2="curl -H 'Content-Type: application/json' -XPUT $des_host/$i -d '$js'"
	echo $cmd2
	#bash -c "$cmd2"
done


3.导入目标数据、验证
for file in `ls *.txt`;
do
    echo $file
	i=`echo $file|cut -d "." -f 1`
	echo $i
	cmd="jq --arg iii $i 'del(.[$iii].settings.index.uuid,.[$iii].settings.index.version,.[$iii].settings.index.provided_name,.[$iii].settings.index.creation_date)' $file"
	js=`bash -c "$cmd"|jq --arg iii $i  -c .[$iii]`
	cmd2="curl -H 'Content-Type: application/json' -XPUT $des_host/$i -d '$js'"
	echo $cmd2 >>ares_curl.index
	#bash -c "$cmd2"
done


--------------A
./esm -s $src_host -x $index -d $target_host -y $index  -c 1000 -b 1 --sort=id  --refresh


--------------B
./esm -s $src_host -x $index -c 5000 --sort=id  --refresh -o=test.json
./esm -d $target_host -y $index  -c 1000 -b 1 --refresh -i=test.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值