有些系统上面配置集群的时候,启动第二个节点的时候会遇到如下错误。这个错误的原因是因为挂在的/tmp目录带有noexec选项。
Caused by: java.lang.UnsatisfiedLinkError:
/tmp/snappy-1.0.5-libsnappyjava.so: /tmp/snappy-1.0.5-libsnappyjava.so:
failed to map segment from shared object: Operation not permitted
那么这个问题的解决方案:
1.重新指定snappy的临时解压目录,要求这个目录所在的分区挂载的选项是没带noexec的。例如:
# mkdir /var/temp/exec
# bin/cassandra -Dorg.xerial.snappy.tempdir=/var/temp/exec
2.如果采用service cassandra start命令的形式启动,可以在conf/cassandra-env.sh末尾加上:
JVM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/var/temp/exec"