更新时间:2024-11-29 GMT+08:00

Solr数据恢复操作

操作场景

Solr通过参数控制数据存储在HDFS,在执行索引删除、副本删除操作时,如果存在误删除的情况,可以参考本章节进行数据恢复。

前提条件

  • 集群已安装Solr服务,HDFS服务正常运行。并且Solr的数据存储在HDFS中,可通过参数“INDEX_STORED_ON_HDFS”是否为“true”进行判断。
  • 客户端已安装,例如安装路径为“/opt/client”。
  • 集群已开启HDFS的回收站功能(该功能是默认开启的),集群存在Solr的周期性元数据备份任务且任务运行正常。
  • 如果集群为安全模式,需要已创建具有Solr、HDFS服务业务操作的用户,例如testuser。普通模式跳过此操作。

操作步骤

  1. 执行Solr元数据恢复,并重启Solr服务。具体操作请参考的“恢复Solr元数据”章节。
  2. 在FusionInsight Manager界面,选择“集群 > 服务 > Solr”,单击Solr概览界面的“停止服务”,验证密码后等待服务停止成功。
  3. 以客户端安装用户,登录安装客户端的节点。执行以下命令进入客户端并认证用户。

    cd /opt/client

    source bigdata_env

    kinit testuser (普通模式跳过此步骤,首次认证需要修改密码)

  4. 依次对每个副本执行以下命令,将HDFS回收站中数据拷贝至索引的HDFS数据目录。

    例如,索引名为test1,副本名为core_node3时,可执行如下命令:

    hdfs dfs -cp -f /user/solr/.Trash/Current/solr/collections/test1/core_node3/data /solr/collections/test1/core_node3

    其中:

    • -f:为加强参数,表示强制覆盖拷贝。
    • 索引名称和副本名称:可以以业务用户登录Solr Admin页面,左侧导航栏选择“Collections”,在界面获取索引名(Collection)和副本名称(Replica)。

    • HDFS回收站会在时间间隔后创建新的检查点目录,并将回收站中数据拷贝至新的检查点目录。为避免在恢复Solr索引数据时,HDFS创建新的检查目录导致索引数据恢复失败,可将HDFS的“fs.trash.checkpoint.interval”参数增大,降低创建检查点频率。

  5. 在FusionInsight Manager界面,选择“集群 > 服务 > Solr”,单击Solr概览界面的“启动服务”,等待服务启动成功。