当前CDP集群共10台solr server主机dn01-dn10,需要缩减集群规模,通过在线调整,将dn06-dn10主机的solr角色调整并移除,对生产业务无影响。

0. ENV
CDP 7.1.x;
Solr 8.4.1;
Firefox 99.0.1 (64 位)。

1. 调整需求
当前CDP集群共10台solr server主机dn01-dn10,需要缩减集群规模,将dn06-dn10主机的solr角色调整并移除。
序号 | Collection_name | Shard_name | 更改前主机分布 | 更改后主机分布 | 操作步骤 |
1 | edge_index | shard1 | dn09.rundba.com | dn05.rundba.com | 添加dn05、删除dn09 |
2 | fulltext_index | shard1 | Dn10.rundba.com | dn04.rundba.com | 添加dn04、删除dn10 |
3 | vertex_index | shard1 | dn08.rundba.com | dn03.rundba.com | 添加dn03、删除dn08 |
4 | ranger_audits | shard1-shard5 | [shard1] dn01.rundba.com dn06.rundba.com shard2 dn04.rundba.com dn07.rundba.com shard3 dn03.rundba.com dn08rundba.com shard4 dn05.rundba.com dn10.rundba.com shard5 dn02undba.com dn09.rundba.com | shard1 dn01.rundba.com shard2 dn04.rundba.com shard3 dn03.rundba.com shard4 dn05.rundba.com shard5 dn02.rundba.com | 每个shard减去dn06-dn10,减去后未考虑副本冗余 |

2. ADDREPLIC和DELETEREPLICA操作
对solr server调整,一般是通过调用ADDREPLICA和DELETEREPLICA API,调整collection 的shard,然后将需要下架主机所在的solr server服务停止、删除,便可移除主机上的solr server删除,后续再调整其它组件角色。
使用ADDREPLICA在collection的shard中添加要保留的主机,使用DELETEREPLICA在collection的shard中删除要剔除的solr server主机。
1) ADDREPLICA操作
以edge_index为例,当前只有shard1中只有dn09.rundba.com主机,因dn09将要移除,所以添加一台保留主机dn05,后续再删除dn09.
以edge_index add replicas操作为例。
直接在浏览器通过调用API,将dn05添加到edge_index的shard1中:
http://dn08.rundba.com:8993/solr/admin/collections?action=ADDREPLICA&collection=edge_index&shard=shard1&node=dn05.rundba.com:8993_solr
其中:
dn08.rundba.com为任一一台solr server主机名;
8993为默认solr server端口;
action=ADDREPLICA说明执行add replicas操作;
collection= edge_index说明是对edge_index进行操作;
shard=shard1说明是对指定的collection的shard1进行操作,如果需要对其它shard操作,请更换对应名称;
node=dn05.rundba.com:8993_solr说明是将dn05加入到上述edge_index的shard1中,其中8993_solr为默认。
正常情况下,数据量较小时,该操作很快完成。
操作完成后,edge_index中的shard1会同时在dn05和dn09上各保存一份数据,两台主机互为冗余。
2) DELETEREPLICA操作
以edge_index为例,当前shard1中有dn05和dn09两台主机,数据互为冗余,现将dn09剔除。
直接在浏览器通过调用API,将dn09从edge_index中shard1中删除:
以edge_index delete replicas操作为例。
http://dn08.rundba.com:8993/solr/admin/collections?action=DELETEREPLICA&collection=edge_index&shard=shard1&replica=core_node2
其中:
dn08.rundba.com为任一一台solr server主机名;
8993为默认solr server端口;
action=DELETEREPLICA说明执行delete replicas操作;
collection= edge_index说明是对edge_index进行操作;
shard=shard1说明是对指定的collection的shard1进行操作,如果需要对其它shard操作,请更换对应名称;
replica=core_node2说明是对shard1中的core_node2(dn09.rundba.com)节点进行操作,core_node2对应主机确认方式
查看edge_index的shard1的dn09对应的core_node名称为core_node2:

3) 调整其它collection分布
采用同样方法,在fulltext_index、ranger_audits、vertex_index的不同shard中执行ADDREPLICA 和DELETEREPLICA,将dn06-dn10删除,最终保留dn01-dn05主机。
调整后每个collection分布:


3. 停止solr server
Solr server从dn06-10调整完成后,将这5台solr server停止。


4. 删除solr server
停止完成后,将dn06-10这5台solr server删除


5. 重启HUE服务
因solr server调整,涉及依赖的HUE服务需要重启,不影响业务运行,只会影响当前hue的访问。
提示Hue服务需要重启,点击重启。

查看变更内容,点击“重启过时服务”。

点击“继续”,确保重启完成。


6. 移除其它角色(略)
Solr server角色已经移除完成后,查看dn10主机角色信息,后期需要再移除其它角色,敬请期待。


7. 小结
当前CDP集群共10台solr server主机dn01-dn10,需要缩减集群规模,通过在线调整,将dn06-dn10主机的solr角色调整并移除,使用浏览器调用通过调用collection的ADDREPLICA和DELETEREPLICA API,调整collection 的shard,然后将需要下架主机所在的solr server服务停止、删除,便可移除主机上的solr server删除,对生产业务无影响。

8. 参考
https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/search-managing/topics/search-migrate-replicas.html
旨在交流,不足之处,还望抛砖。
作者:王坤,微信公众号:rundba,欢迎转载,转载请注明出处。
如需公众号转发,请联系wx: landnow。





