我有两个码头工人坐在两台不同的机器上,两台机器人都在运行大便器。当我提交一个有两个节点的应用程序 - vespa1和vespa2(在/ etc / hosts中解析)。我收到以下错误。
Uploading application '/vespa-eval/src/main/application/' using http://localhost:19071/application/v2/tenant/default/session?name=application
Session 6 for tenant 'default' created.
Preparing session 6 using
http://localhost:19071/application/v2/tenant/default/session/6/prepared
Request failed. HTTP status code: 400
Invalid application package: default.default: Error loading model:
Could not find host in the application's host system: 'vespa-container'. Hostsystem=host 'vespa1',host 'vespa2'
仅使用localhost时没有问题。
hosts.xml
<?xml version="1.0" encoding="utf-8" ?>
<hosts>
<host name="vespa1">
<alias>node0</alias>
</host>
<host name="vespa2">
<alias>node1</alias>
</host>
</hosts>
的services.xml
<?xml version="1.0" encoding="utf-8" ?>
<services version="1.0">
<admin version="2.0">
<adminserver hostalias="node0"/>
<configservers>
<configserver hostalias="node0"/>
</configservers>
</admin>
<container id="container" version="1.0">
<document-api />
<search />
<nodes>
<node hostalias="node0" />
<node hostalias="node1" />
</nodes>
</container>
<content id="product" version="1.0">
<redundancy>1</redundancy>
<documents>
<document type="product" mode="index" />
</documents>
<nodes>
<node hostalias="node0" distribution-key="0" />
<node hostalias="node1" distribution-key="1" />
</nodes>
</content>
</services>
答案 0 :(得分:3)
看起来已经部署了名为vespa-container的主机,但未在新的应用程序包中部署。要进行调试,请尝试
this.result = this.result.filter(el => {
el.state == undefined || el.state == null || el.state == false;
});
配置服务器上的,看看它是否列出了主机。也许从头开始尝试是个好主意,我没有看到所附文件有什么问题。要清理配置服务器,请搜索
vespa-model-inspect hosts
文档中的
答案 1 :(得分:1)
我遇到了同样的问题,并通过将'vespa-container'(命令下方)替换为物理盒的主机名来修复错误。但是,这会导致rpc连接中出现其他几个错误。你解决了这个问题吗? @ aman.gupta
docker run --detach --name vespa --hostname vespa-container --privileged \
--volume $VESPA_SAMPLE_APPS:/vespa-sample-apps --publish 8080:8080 vespaengine/vespa