我刚刚继承了一个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}}
感谢。
答案 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节点。