Cassandra并不是一项服务

时间:2016-11-24 10:31:15

标签: cassandra

如果我尝试将cassandra作为服务运行:

sudo service cassandra start

没有错误或日志被追踪到终端,似乎它正在工作.. 如果我尝试在另一个节点上运行:

/usr/bin/nodetool status mynamespace

我的状态为DN,只有在运行cassandra时才会这样:

/usr/sbin/cassandra -f

然后/usr/bin/nodetool status mynamespace会将节点声明为UN:

enter image description here

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以在服务开始后查看/var/log/cassandra/system.log吗?如果您先使用cassandra -f运行,则可能会与您的用户而不是cassandra用户一起创建文件,这会在服务启动时导致权限问题

答案 1 :(得分:0)

为了启动cassandra作为服务,我在/etc/systemd/system/cassandra.service为cassandra写了一个服务。看看 -

[Unit]
Description=Cassandra Cluster Node Daemon

[Service]
Type=forking
User=cassandra
ExecStartPre=/usr/bin/echo "Starting Cassandra Daemon"
ExecStart=/opt/apache-cassandra-2.2.4/bin/cassandra
ExecStartPost=/usr/bin/echo "Cassandra Daemon Running"

ExecStopPost=/usr/bin/rm -rf /data/cassandra/saved_caches;/usr/bin/echo "Cassandra Daemon Stopped"

SuccessExitStatus=143

[Install]
WantedBy=default.target

然后 -

# systemctl start cassandra

此处,ExecStart=<cassandra-path>/data/cassandra/saved_caches - 是您的saved_caches路径。

答案 2 :(得分:0)

您是否检查过服务是否正在运行?

sudo service cassandra restart

check if cassandra has exited

如果它显示为绿色退出,则表明它甚至没有运行,因此您只需要重新启动服务即可

sudo service cassandra status