Solr - 恢复Zookeeper后丢失配置

时间:2016-06-16 01:53:54

标签: hadoop solr apache-zookeeper

我刚刚继承了一个hadoop集群(以前从未与hadoop合作过),由7台服务器组成,并通过Ambari进行管理。
今天Ambari失去了服务器3上的所有服务以及ZooKeeper服务(托管在服务器1,2和3上),ZKFailOver(托管在服务器1和2上)和ZooKeeper客户端(托管在4,5,6,7上)的心跳停了,所有人都拒绝开始。这也导致Solr服务停止工作 经过一番调查后,我发现server3上的Zookeeper由于CRC问题而在最近的快照上出错。经过多次阅读后,我删除了... / zookeeper / version-2 /中的旧快照文件,然后运行' zk -formatZK' (在server1上)。 Zookeeper服务现在可以启动,并且正在接收来自server3的心跳 我现在看到的问题是所有的Solr服务都不再正确配置 - " ... ZooKeeperException:找不到collectioin xxxx的configName:null"我还没有成功地弄清楚如何将以前的Solr配置送到Zookeeper。我试图使用' zkcli.sh'我在Solr目录中找到了位于' / opt / solr / xxxx / scripts / cloud-scripts /'但它似乎没有像Hadoop文档中描述的zkCli那样工作。 我的问题是,如何使用现有的配置文件设置Solr服务器?如果我不能如何重建以下配置:

{{1}}

感谢。

1 个答案:

答案 0 :(得分:0)

因此,经过反复试验,我发现zkcli.sh应该按照以下方式使用:

procedure TSDIAppForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := 0;
end;

procedure TSDIAppForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TSDIAppForm.FormDestroy(Sender: TObject);
begin
  if Screen.FormCount = 2 then // only this Form and the MainForm
    Application.Terminate;
end;

procedure TSDIAppForm.FileNew1Execute(Sender: TObject);
var
  LNewDoc: TSDIAppForm;
begin
  LNewDoc := TSDIAppForm.Create(Application);
  LNewDoc.Show;
end;

这应该将任何现有配置上传到所有ZK节点。