1

似乎无法安装 Cassandra 软件包,马拉松卡在第 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
4

2 回答 2

2

我在构建 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://<your-dcos-host>/service/cassandra/v1/plan | jq '.'。有关其他端点,请参阅Cassandra 1.7 文档curl中的示例。

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

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

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

Pastebin 到日志文件

另一方面,该问题并未出现在 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 子命令。

于 2016-04-26T13:08:19.497 回答