2

我有两个码头工人坐在两台不同的机器上,都运行 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'

仅使用本地主机时我没有问题。

主机.xml

<?xml version="1.0" encoding="utf-8" ?>
<hosts>
    <host name="vespa1">
    <alias>node0</alias>
</host>
    <host name="vespa2">
    <alias>node1</alias>
</host>
</hosts>

服务.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>
4

2 回答 2

3

看起来名为 vespa-container 的主机已经部署,但不在新的应用程序包中。要调试,请尝试

vespa-model-inspect hosts

在配置服务器上,看看它是否列出了主机。从头开始尝试也许是个好主意,我认为随附的文件没有任何问题。要清理配置服务器,请搜索

vespa-configserver-remove-state

在文档中

于 2018-03-20T16:04:16.233 回答
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
于 2018-04-02T03:05:32.357 回答