Cassandra 无法启动卡桑德拉。设置ulimit失败
我安装了cassandra并尝试启动服务,但遇到以下错误。我可以知道我应该更改什么值吗?谢谢你抽出时间Cassandra 无法启动卡桑德拉。设置ulimit失败,cassandra,datastax,Cassandra,Datastax,我安装了cassandra并尝试启动服务,但遇到以下错误。我可以知道我应该更改什么值吗?谢谢你抽出时间 #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
#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
}
无论错误消息是什么,节点都应该向上。您可以通过运行
sudo service dse status
或nodetool ring
来验证这一点
如果这没有帮助,一个解决办法是编辑/etc/init.d/dse,并删除在错误消息中看到的for循环中的
-p
标志(用于p in-t-f-d-s-c-m-l-n;是否)您是否特别回顾了关于用户限制的部分?建议的设置是:“打包安装:确保/etc/security/limits.d/cassandra.conf文件中包含以下设置:cassandra-memlock unlimited cassandra-nofile 100000 cassandra-nproc 32768 cassandra-as unlimited”您好,是的,我检查了它们,发现它们存在于文件中。但当我开始的时候,我还是得到了这个错误。有什么帮助吗?我还需要在哪里修复设置?感谢移除-p标志非常有效。非常感谢你。你能不能也分享一些关于它引起了什么问题以及如何消除它的影响的信息?再次感谢,我被它困扰了很长时间。错误消息Fail setting ulimit'-p''8':/etc/init.d/dse:line 430:ulimit:pipe size:cannot modify limit:Invalid argument
表示您使用的操作系统不支持ulimit-p
,因此从脚本中删除它为您解决了问题。这个问题也应该在下一个DSE补丁版本中解决。