2014-04-20 45 views
3

我想在Docker(ubuntu 14.04)上启动一个cassandra(而不是dsc)服务器。当我运行service cassandra start(根),我得到的文件Docker + Cassandra ulimit错误

/etc/init.d/cassandra: 82: ulimit: error setting limit (Operation not permitted) 

线82

ulimit -l unlimited 

我真的不知道我需要改变它。

+0

我不知道是否有一个安全/合理的价值设置为w.r.t.卡桑德拉如果无限是不可能的。 – David

回答

1

一个简短的介绍ulimitRESOURCE LIMITS ON UNIX SYSTEMS (ULIMIT)。 此初始化脚本试图发出的命令应该将最大锁定内存限制设置为无限制。应该成功为根。 whoami print root

UPD:进一步的研究导致我到this Google Groups讨论。希望它能澄清一些事情。

5

我希望你会得到那个警告,但Cassandra会继续启动并正常运行。正如在另一个答案中指出的,由于安全原因,Docker限制某些操作。在这种情况下,Casssandra初始化脚本试图允许无限制的锁定内存。假设你在禁用swap的情况下运行(因为它是Cassandra的最佳实践),那么你可以放心地忽略这个错误。

我在Docker中为我的开发环境运行Cassandra并获得了此警告,但Cassandra启动并运行得很好。如果它没有启动,请检查cassandra日志文件是否有其他问题。

+0

您可能也会缺少cassandra子目录。确保创建数据,saved_caches和commitlog文件夹 – bruceg

+0

我遇到了这个问题,但现在我升级到Mac High Sierra并从Docker Toolbox(通过VirtualBox的Docker)切换到本机Docker for Mac,当我启动Cassandra时,它不像之前我​​的OS/Docker升级启动。奇怪。 Cassandra日志没有显示任何内容,'/ var/log/cassandra'是空的。有任何想法吗? – David

+0

@bruceg,我们在哪里创建这些子目录(如果缺少)? – David