就我对Endeca的了解而言,只要您想在Endeca配置中添加新的dgraph定义,就必须运行initializeServices.sh
以在EAC上设置更新的配置。
我想知道在没有运行initalizeServices.sh
的情况下是否有任何办法可以做到这一点(因为它不仅仅是更新在EAC中注册的Dgraph列表,而且我想阻止它)。
我发现命令./runcommand.sh --update-definition
允许你对已经在EAC中注册的Dgraph进行配置更改,但是如果我在config中添加一个新的dgraph并运行命令它会失败,并显示以下错误:< / p>
[11.17.16 16:00:07] INFO: Setting definition for host 'MDEXLiveHost2'.
[11.17.16 16:00:07] SEVERE: Caught an exception while checking provisioning
Caused by com.endeca.soleng.eac.toolkit.exception.EacCommunicationException
com.endeca.soleng.eac.toolkit.host.Host setDefinition - Caught exception while setting host definition.
Caused by com.endeca.eac.client.ProvisioningFault
sun.reflect.NativeConstructorAccessorImpl newInstance0 - null
我无法在PlatformServices日志中的任何位置找到此错误的详细日志以进一步调试。
但是,我可以在请求日志中看到/eac/ProvisioningService
提供了500
的HTTP代码,这让我相信该脚本正在尝试查找MDEXLiveHost2
的当前配置,并且无法找到它。
已编辑添加配置:
新主持人:
<host id="MDEXLiveHost2" hostName="${mdexLive.host2}" port="${mdexLive.eac.port}" useSsl="false" />
新Dgraph:
<dgraph id="DgraphLive2" host-id="MDEXLiveHost2" port="${dgraphLive1.port}"
post-startup-script="LiveDgraphPostStartup">
<properties>
<property name="restartGroup" value="A" />
<property name="updateGroup" value="a" />
<property name="DgraphContentGroup" value="Live" />
</properties>
<log-dir>./logs/dgraphs/DgraphLive</log-dir>
<input-dir>./data/dgraphs/DgraphLive/dgraph_input</input-dir>
<update-dir>./data/dgraphs/DgraphLive/dgraph_input/updates</update-dir>
</dgraph>
使用eaccmd.sh
主机定义文件:
<host host-id="MDEXLiveHost2" host-name="172.18.0.7" port="9999" useSsl="false"/>
主机已成功添加(通过describe-app
验证)
$./eaccmd.sh describe-app --app myapp | grep MDEXLiveHost2
<host host-name="172.18.0.7" port="9999" host-id="MDEXLiveHost2" useSsl="false">
但是,运行任何命令我都会收到此错误:
[11.18.16 11:00:58] INFO: Updating provisioning for host 'MDEXLiveHost2'.
[11.18.16 11:00:58] INFO: Host name of host 'MDEXLiveHost2' has changed from 172.18.0.7 to 172.18.0.7 . Components on this host will be re-provisioned.
[11.18.16 11:00:58] INFO: Updating definition for host 'MDEXLiveHost2'.
[11.18.16 11:00:58] SEVERE: Caught an exception while checking provisioning.
Caused by com.endeca.soleng.eac.toolkit.exception.EacCommunicationException
com.endeca.soleng.eac.toolkit.host.Host updateEacDefinition - Caught exception while updating host definition.
Caused by com.endeca.eac.client.ProvisioningFault
sun.reflect.NativeConstructorAccessorImpl newInstance0 - null
如果只有这个错误可以更详细,那可能会有所帮助。
答案 0 :(得分:1)
您不必为每个配置更改运行initializeServices.sh
。当您在control
文件夹中执行其他脚本时,他们首先检查是否有任何配置更改并应用这些更改。
就错误而言,我怀疑您未在MDEXLiveHost2
中指定LiveDGraphCluster.xml
,或者您指定的主机无法访问。验证您的配置。
最后,您向群集中动态添加更多DGraphs
的方法不是标准做法。配置环境时,应使用ENEPerf
进行负载测试以模拟负载,然后根据需要创建尽可能多的DGraphs
和主机。如果要动态添加更多主机和DGraphs
,还需要确保将其动态添加到负载均衡器配置中。
答案 1 :(得分:0)
我的第一个猜测是,mdex主机2可能没有安装平台服务/ Mdex并且平台服务正在运行,但可能是您指定的端口不正确。
<host host-id="MDEXLiveHost2" host-name="172.18.0.7" port="9999" useSsl="false"/>
您的eac端口是9999而不是8888(OOB值)?如果您的ITL服务器上是9999,您需要确保它在新的Dgraph服务器上也设置为9999。