在多个docker容器上设置vespa时出现问题

时间:2018-03-19 21:04:42

标签: vespa

我有两个码头工人坐在两台不同的机器上,两台机器人都在运行大便器。当我提交一个有两个节点的应用程序 - 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>

2 个答案:

答案 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