Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装后无法访问Cassandra NoSQL DB_Cassandra_Cassandra 3.0 - Fatal编程技术网

安装后无法访问Cassandra NoSQL DB

安装后无法访问Cassandra NoSQL DB,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,我在Ubuntu 20.04中安装了Cassandra稳定版。JavaJDK11是我的默认版本。 当我运行下面的代码时,我得到了以下错误 (base) vijee@vijee-Lenovo-IdeaPad-S510p:~$ sudo nodetool status ERROR 13:18:40,031 Cannot initialize un-mmaper. (Are you using a non-Oracle JVM?) Compacted data files will not be

我在Ubuntu 20.04中安装了Cassandra稳定版。JavaJDK11是我的默认版本。 当我运行下面的代码时,我得到了以下错误

(base) vijee@vijee-Lenovo-IdeaPad-S510p:~$ sudo nodetool status
ERROR 13:18:40,031 Cannot initialize un-mmaper.  (Are you using a non-Oracle JVM?)  Compacted data files will not be removed promptly.  Consider using an Oracle JVM or using standard disk access mode
java.lang.NoSuchMethodError: 'sun.misc.Cleaner sun.nio.ch.DirectBuffer.cleaner()'
    at org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:75) ~[apache-cassandra-3.11.9.jar:3.11.9]
    at org.apache.cassandra.utils.FBUtilities.getToolsOutputDirectory(FBUtilities.java:880) ~[apache-cassandra-3.11.9.jar:3.11.9]
    at org.apache.cassandra.tools.NodeTool.printHistory(NodeTool.java:216) ~[apache-cassandra-3.11.9.jar:3.11.9]
    at org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:184) ~[apache-cassandra-3.11.9.jar:3.11.9]
    at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:56) ~[apache-cassandra-3.11.9.jar:3.11.9]
error: null
-- StackTrace --
java.lang.NullPointerException
    at org.apache.cassandra.config.DatabaseDescriptor.getDiskFailurePolicy(DatabaseDescriptor.java:1975)
    at org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:102)
    at org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable(JVMStabilityInspector.java:60)
    at org.apache.cassandra.io.util.FileUtils.<clinit>(FileUtils.java:81)
    at org.apache.cassandra.utils.FBUtilities.getToolsOutputDirectory(FBUtilities.java:880)
    at org.apache.cassandra.tools.NodeTool.printHistory(NodeTool.java:216)
    at org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:184)
    at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:56)
我知道Cassandra只支持JDK 8。在一些博客中,他们说我们可以将Java8指定为Cassandra的Java_主页。我应该在哪里为卡桑德拉更换JAVA_HOME? 在.bashrc中,我已经为Hadoop安装将JAVA_HOME设置为JDK 8

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH="$PATH:$JAVA_HOME/bin"
export PATH="/home/vijee/anaconda3/bin:$PATH"

export HADOOP_HOME=/home/vijee/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH="$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin"
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
在博客里,每个人都给出了不同的解决方案?我基本上对此感到困惑

  • 我应该做哪些更改才能访问Cassandra?或
  • 我可以安装Cassandra 4(测试版)吗

  • 假设Cassandra已经在运行,请检查两个文件:

    CASSANDRA_HOME/bin/nodetool
    CASSANDRA_HOME/conf/cassandra-env.sh
    
    nodetool
    中查看程序流。我认为在从
    cassandra env.sh
    中引入变量之前,它会检查是否定义了
    JAVA\u HOME


    您当然可以尝试Cassandra4,它在Java11中应该可以正常工作。请注意,它是beta版。

    我在Ubuntu 20.04中遇到了与Debian安装Cassandra 3.11相同的问题。以下是我的环境路径设置:

    我通过
    sudo-update-alternations
    将默认JVM设置为Java8解决了这个问题。然后在我执行了sudo systemctl restart cassandra之后,我就能够成功地连接了

    如果您要检查cassandra-env.sh的内容,它似乎指向由
    java-version
    返回的JVM版本。因此,如果它返回版本11,您的Cassandra将无法运行


    我更改了java版本,然后重新启动了Cassandra,然后它正在运行,过了一段时间,当我检查状态时,它变为Active:Active(已退出)。它不再跑了。
    CASSANDRA_HOME/bin/nodetool
    CASSANDRA_HOME/conf/cassandra-env.sh