2016-11-17 4 views
0

Endeca에 대한 지식이있는 한 Endeca 구성에 새 dgraph 정의를 추가 할 때마다 initializeServices.sh을 실행하여 업데이트 된 구성을 설정해야합니다 EAC에Endeca에서 새 Dgraphs를 동적으로 정의하고 등록하는 방법이 있습니까

initalizeServices.sh을 실행하지 않고 수행 할 수있는 방법이 있는지 궁금합니다 (EAC에 등록 된 Dgraph 목록을 업데이트하는 것 이상을 수행하고 있으므로이를 방지하기 위해).

나는 ./runcommand.sh --update-definition 이미 EAC에 등록 된 Dgraph, 구성 변경을 수행 할 수 있습니다 명령을 찾았지만, 내가 설정에 새로운 dgraph을 추가하고 명령을 실행하는 경우 아래의 오류와 함께 실패 :

[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 스크립트가 MDEXLiveHost2의 현재 구성을 찾기 위해 노력하고 그것을 찾을 수없는 것을 믿고 날 리드 500의 HTTP 코드를 준 것을 요청 로그에서 볼 수 있었다.

에 대한 구성을 추가하려면 편집 :

새로운 호스트 :

<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">

하지만,이 오류가 얻을 수있는 명령을 실행 : ition 파일 만이 오류 경우

[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 

을 좀 더 장황하게 만들 수 있는데 도움이 될 것입니다.

답변

1

구성을 변경할 때마다 initializeServices.sh을 실행할 필요가 없습니다. control 폴더에서 다른 스크립트를 실행하면 먼저 구성 변경 사항이 있는지 확인하고 이러한 변경 사항을 적용합니다.

오류에 관한 한 LiveDGraphCluster.xmlMDEXLiveHost2을 지정하지 않았거나 지정한 호스트에 연결할 수 없다고 의심됩니다. 구성을 확인하십시오.

마지막으로 DGraphs을 동적으로 클러스터에 추가하는 방법은 표준 방식이 아닙니다. 환경을 구성 할 때 ENEPerf을 사용하여로드 테스트를 수행하여로드를 시뮬레이트 한 다음 필요에 따라 DGraphs 및 호스트를 많이 생성해야합니다. 호스트를 더 추가하고 DGraphs을 동적으로 추가하는 경우로드 밸런서 구성에도 동적으로 추가해야합니다.

+0

응답 해 주셔서 감사합니다. 나는 새로운 호스트에 대한 정의를 추가했다. (원래 게시물의 편집으로 구성을 추가 할 것이다.) 로드 균형 조정기에 새 dgraphs를 추가하는 제안에 대해서는 dgraphs를 올바르게 추가 할 수있을 때만 이미 달성되었다. 먼저 :) – Amit

+0

'mdexLive.host2'는 클러스터에 동적으로 추가하려고 할 때 이미'MDEX'와'PlatformServices'가 설치된 별도의 머신이라고 가정합니다. 'runcommand.sh DgraphLive2 stop'과'runcommand.sh DgraphLive2 start'를 실행하여 연결성을 확인하는 방법을 보았습니까? – radimpe

+0

죄송합니다, 주사위가 없습니다. 나는 똑같은 오류가있다. 그 사이에'eaccmd.sh'를 발견하고'./eaccmd.sh describe-app --app myapp'을 시도했으며 MDEXLiveHost2에 대한 정의가 없습니다. 그래서 나는이 호스트를'eaccmd.sh'를 사용하여 추가하려고 시도했는데 다른 오류가 발생했습니다 (다시 편집으로 추가됩니다) – Amit

0

내 첫 번째 추측은 mdex 호스트 2에 플랫폼 서비스/Mdex가 설치되어 있지 않고 플랫폼 서비스가 실행되고 있지 않지만 사용자가 지정한 포트가 올바르지 않을 수 있다는 것입니다.

<host host-id="MDEXLiveHost2" host-name="172.18.0.7" port="9999" useSsl="false"/> 

귀사의 eac 포트는 8888 (OOB 값)이 아닌 9999입니까? ITL 서버에서 9999이면 새 Dgraph 서버에서도 9999로 설정해야합니다.