【问题标题】:dcos cassandra subcommand errordcos cassandra 子命令错误
【发布时间】:2016-04-24 18:25:16
【问题描述】:

似乎无法安装 Cassandra 软件包,marathon 在第 1/2 阶段的部署中卡住了,并且 dcos cassandra 子命令发出以下堆栈跟踪,感谢任何帮助。

Traceback (most recent call last):
  File "/home/azureuser/.dcos/subcommands/cassandra/env/bin/dcos-cassandra", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/opt/mesosphere/lib/python3.4/site-packages/pkg_resources.py", line 2701, in <module>
    parse_requirements(__requires__), Environment()
  File "/opt/mesosphere/lib/python3.4/site-packages/pkg_resources.py", line 572, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: requests


Python version: Python 3.4.2
requests version : 1.8.1

【问题讨论】:

  • 您能否用两条信息更新您的问题:什么 DC/OS 版本(我假设 dcos.io 的 1.7 EA?)以及 CLI 上 dcos --version 的输出。跨度>
  • 嗨 Michael,DC/OS 版本来自 azure ui states DC/OS v.1.7.0,CLI 输出 dcos 版本 0.4.4
  • 市场还是 ACS?什么是 CLI 版本?
  • 这是市场模板

标签: python cassandra mesosphere dcos


【解决方案1】:

我在构建 Cassandra 服务的团队中。感谢您试用!

我们刚刚更新了 Cassandra CLI 包,以更好地定义其 pip 依赖项。在您的情况下,它看起来像是在尝试重用 requests 库的旧版本?要将 CLI 的 Cassandra 模块升级到最新版本,请尝试运行 dcos package uninstall --cli cassandra; dcos package install --cli cassandra。请注意,--cli 很重要;省略它可能会导致卸载 Cassandra 服务本身,而我们只想重新安装本地 CLI 模块。

请记住,您还应该能够直接通过 HTTP 访问 Cassandra 服务。 CLI 模块实际上是围绕服务的 HTTP API 的瘦接口。例如,curl -H "Authorization:token=$(dcos config show core.dcos_acs_token)" http://&lt;your-dcos-host&gt;/service/cassandra/v1/plan | jq '.'。有关其他端点,请参阅 Cassandra 1.7 docs 中的 curl 示例。

CLI 启动并运行后,应该可以更深入地了解服务的状态,但日志可能会提供更全面的信息,尤其是在服务无法启动的情况下。您可以通过访问http://&lt;your-dcos-host&gt;/ 的仪表板直接访问服务日志:

  1. 单击左侧的Services,然后从列表中选择marathon。 Cassandra 服务管理器作为 Marathon 任务运行。
  2. 将出现一个面板,显示 Marathon 管理的所有任务的列表。单击此列表上的cassandra 以显示其工作目录,包括可用的日志文件。
  3. 将鼠标悬停在文件上时,会出现放大镜。单击放大镜可直接显示相应的文件。

【讨论】:

    【解决方案2】:

    很遗憾,我们仍然遇到同样的问题,尽管我们已经设法找到解决方法。 Azure 上的 DC/OS 似乎存在不止一个明显的问题,无论如何我会提供进一步的反馈。如果使用 DC/OS 1.7.0 的 Marketplace 版本,Cassandra 不会部署,它会在第 1/2 阶段卡在 Marathon 中,在检查日志后,访问默认端口似乎有问题。

    Pastebin to log file

    另一方面,该问题并未出现在 ACS DC/OS 上,但 Cassandra 部署正确地出现在 DC/OS 服务选项卡以及 Marathon 中。 DCOS Cassandra CLI 不适用于任何设备。经过不彻底的检查,似乎当我们使用上述方法安装 DCOS CLI 时,依赖关系存在一些问题,特别是考虑到 $PYTHONPATH 变量

    /opt/mesosphere/lib/python3.4/site-packages
    

    我们能够通过采取两个措施来解决依赖问题:

    • 第一个依赖问题与请求模块有关,在为 Cassandra 子命令安装 cli 后通过以下操作解决了该问题。

      cd ~/.dcos/subcommands/cassandra
      source env/bin/activate
      pip install -Iv requests
      

    我们使用了 -Iv,因为通常的更新过程因 $PYTHONPATH 路径中的外部依赖而失败,因此请求依赖已解决。

    • cassandra 子命令需要的第二个依赖项是 docopt,再次使用我们能够解决问题的相同方法,现在子命令按照文档工作

      pip install -Iv docopt
      

    这似乎有点骇人听闻,想知道是否有更合适的事情要做。

    执行上述步骤后 dcos cassandra 连接的输出

    {
    "address": [
        "10.32.0.9:9042",
        "10.32.0.6:9042",
        "10.32.0.8:9042"
    ],
    "dns": [
        "node-0.cassandra.mesos:9042",
        "node-1.cassandra.mesos:9042",
        "node-2.cassandra.mesos:9042"
    ]
    }
    

    其他 DC/OS 子命令也会发生同样的情况,例如 Kafka 子命令。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2016-10-11
    • 1970-01-01
    • 2017-04-02
    • 2023-03-30
    • 2020-12-08
    • 2017-09-26
    相关资源
    最近更新 更多