2015-10-05 121 views
3

我安装了cassandra并尝试启动服务但遇到以下错误。我可否知道我应该改变什么价值?谢谢你的时间。无法启动cassandra。失败设置ulimit

#service dse start 
Starting DSE daemon : dse 
DSE daemon starting with just Cassandra enabled (edit /etc/default/dse to enable) 
Fail setting `ulimit '-p' '8'`: /etc/init.d/dse: line 430: ulimit: pipe size: cannot modify limit: Invalid argument 

/etc/init.d/dse file contains below info 

copy_limits(){ 
    # Use CASSANDRA_USER as a default argument 
    local user=${1:-${CASSANDRA_USER}} 

    # Since /bin/sh has a limited `ulimit` and `prlimit` from 'utils-linux' is 
    # not well spread, we use `for` as an alternative 
    local c 
    for p in -t -f -d -s -c -m -l -p -n; do 
     local v="$(su - "$user" -s /bin/sh -c "ulimit $p" 2>/dev/null)" 
==>line 430 in error ***** :  ulimit $p $v 2>&1 | \ 
      while read err; do 
       log_message "Fail setting \`ulimit '$p' '$v'\`: $err" 
      done 
    done 
} 
+1

你有没有回顾[本文档](http://docs.datastax.com/en/cassandra/2.0/cassandra/install/installRecommendSettings.html),尤其是关于用户限制的部分?推荐设置:“打包安装:确保以下设置包含在/etc/security/limits.d/cassandra.conf文件: 卡桑德拉 - MEMLOCK无限 卡桑德拉 - NOFILE 100000 卡桑德拉 - NPROC 32768 卡桑德拉 - 作为无限的“ – LHWizard

+0

嗨,是的,我检查了它们,发现它们存在于文件中。仍然当我开始时,我得到这个错误。任何我需要修复设置的其他帮助?谢谢 – user3726031

回答

2

节点应UP无论错误消息的。您可以通过运行sudo service dse statusnodetool ring来验证。

如果没有帮助,一个解决方法是编辑/etc/init.d/dse并删除-p国旗在for循环,你在错误信息看(for p in -t -f -d -s -c -m -l -n; do

+0

删除-p标志完美工作。非常感谢你。你能不能分享一下它造成的麻烦以及如何消除它的影响?再次感谢我长期坚持下去。 – user3726031

+0

错误信息'失败设置ulimit'-p''8':/etc/init.d/dse:第430行:ulimit:管道大小:无法修改限制:无效参数'是说你使用的操作系统是不支持'ulimit -p',所以从脚本中删除它可以解决您的问题。这个问题也应该在下一个DSE补丁版本中得到解决。 – nastra