Cassandra tmpdir change l'location

Cassandra ne parvient pas à démarrer si /tmp est défini comme noexec , ce qui est plutôt par défaut ces jours-ci:

 java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native at org.apache.cassandra.utils.memory.MemoryUtil.allocate(MemoryUtil.java:82) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.util.Memory.<init>(Memory.java:74) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.util.Memory.allocate(Memory.java:97) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer.deserialize(IndexSummary.java:323) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader.loadSummary(SSTableReader.java:836) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:692) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:664) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:458) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:363) ~[apache-cassandra-2.2.2.jar:2.2.2] at org.apache.cassandra.io.sstable.format.SSTableReader$4.run(SSTableReader.java:501) ~[apache-cassandra-2.2.2.jar:2.2.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_102] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_102] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] 

Si je supprime le drapeau noexec du /var/tmp mount Cassandra démarre correctement. J'ai essayé un certain nombre de methods pour modifier l'location du tmpdir dans le file cassandra-env.sh :

 JVM_OPTS="$JVM_OPTS -Djna.tmpdir=/home/cassandra/tmp" JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/home/cassandra/tmp" JVM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/home/cassandra/tmp" 

Je n'ai pas utilisé ces tout à la fois, bien sûr, ce sont des solutions que j'ai trouvées sur Internet, mais aucune ne semble fonctionner. J'ai même essayé d'exporter TMPDIR au début du file cassandra-env.sh , mais en vain. Il manque toujours avec le même message.

Je pense que c'est une mauvaise idée de laisser /tmp sans le drapeau noexec, en toute security. Je manque évidemment quelque chose de basique ici. Comment configurer le tmpdir pour être /home/cassandra/tmp ou quelque chose de similaire?

    One Solution collect form web for “Cassandra tmpdir change l'location”

    Ah, il semble que les deux options doivent être présentes dans le file cassandra-env.sh :

     JVM_OPTS="$JVM_OPTS -Djna.tmpdir=/home/cassandra/tmp" JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/home/cassandra/tmp" 
    Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.