【问题标题】:Starting cassandra as a service does not work for 2.0.5, sudo cassandra -f works将 cassandra 作为服务启动不适用于 2.0.5,sudo cassandra -f 有效
【发布时间】:2014-04-14 00:30:53
【问题描述】:

当我尝试在 ubuntu 12.04 上启动 cassandra(通过 Datastax 的 dsc20 包安装)作为服务时:

$ sudo service cassandra start

它说

*无法访问 Cassandra 的 pidfile

& 日志中没有其他消息或任何内容。

但是当我尝试以 root 用户身份运行时(sudo cassandra -f),它可以正常工作并且 cassandra 已启动。在尝试调试时,我发现在尝试以非 root 用户身份运行 时,我收到了以下消息:

ERROR 17:48:08,432 Exception encountered during startup
java.lang.AssertionError: Directory /var/lib/cassandra/data is not accessible.
..
java.io.FileNotFoundException: /var/log/cassandra/system.log (Permission denied)
..
java.lang.AssertionError: Directory /var/lib/cassandra/data is not accessible.

包装有问题吗?包没有正确安装/配置??

【问题讨论】:

  • 你使用的是什么版本的 DSE(datastax-enterprise 标签),还是这个纯 Cassandra?

标签: cassandra datastax-enterprise datastax


【解决方案1】:

默认情况下,cassandra 服务不会也不应该以 root 身份运行。

我的猜测是你首先在前台运行它,它会自动创建 /var/lib/cassandra 并使用 root 权限而不是 cassandra 权限。使用适当的组和用户 chown -R /var/lib/cassandra 或删除目录并尝试再次启动服务。

【讨论】:

  • 但是这是一种实用的方法吗?我应该像这样删除整个文件夹并让 cassandra 创建新文件夹吗?这不会减少来自 cassandra 的一些信息吗? (就像默认情况下存在但不会由 cassandra 本身创建的 opscenter 键空间?或其他我不知道的东西!)。
  • 实用方法是一个大话题。理想情况下,您以新安装的用户身份启动该服务,而不是使用 root(您在那里偏离了轨道)。如果您担心保留数据,chown 会起作用。
  • sudo chown -R cassandra:cassandra /var/lib/cassandra 为我工作-谢谢
【解决方案2】:
$ su cassandra

然后运行

$ service cassandra start

它对我有用。

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 2018-08-17
    • 1970-01-01
    • 2012-09-03
    • 2013-11-08
    • 2011-09-05
    • 2015-04-22
    相关资源
    最近更新 更多