在 MacO 上安装 Cassandra 时遇到问题

Facing issue while installing Cassandra on MacOs

我正在尝试在 MacOs (M1) 上安装 Cassandra 3.11。我正在使用 tarball 安装并遵循官方安装指南。但是当我尝试 运行 Cassandra 使用 bin/cassandra ,我遇到了以下错误。

CompilerOracle: dontinline org/apache/cassandra/db/Columns$Serializer.deserializeLargeSubset (Lorg/apache/cassandra/io/util/DataInputPlus;Lorg/apache/cassandra/db/Columns;I)Lorg/apache/cassandra/db/Columns;
CompilerOracle: dontinline org/apache/cassandra/db/Columns$Serializer.serializeLargeSubset (Ljava/util/Collection;ILorg/apache/cassandra/db/Columns;ILorg/apache/cassandra/io/util/DataOutputPlus;)V
CompilerOracle: dontinline org/apache/cassandra/db/Columns$Serializer.serializeLargeSubsetSize (Ljava/util/Collection;ILorg/apache/cassandra/db/Columns;I)I
CompilerOracle: dontinline org/apache/cassandra/db/transform/BaseIterator.tryGetMoreContents ()Z
CompilerOracle: dontinline org/apache/cassandra/db/transform/StoppingTransformation.stop ()V
CompilerOracle: dontinline org/apache/cassandra/db/transform/StoppingTransformation.stopInPartition ()V
CompilerOracle: dontinline org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.doFlush (I)V
CompilerOracle: dontinline org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.writeExcessSlow ()V
CompilerOracle: dontinline org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.writeSlow (JI)V
CompilerOracle: dontinline org/apache/cassandra/io/util/RebufferingInputStream.readPrimitiveSlowly (I)J
CompilerOracle: inline org/apache/cassandra/io/util/Memory.checkBounds (JJ)V
CompilerOracle: inline org/apache/cassandra/io/util/SafeMemory.checkBounds (JJ)V
CompilerOracle: inline org/apache/cassandra/utils/AsymmetricOrdering.selectBoundary (Lorg/apache/cassandra/utils/AsymmetricOrdering/Op;II)I
CompilerOracle: inline org/apache/cassandra/utils/AsymmetricOrdering.strictnessOfLessThan (Lorg/apache/cassandra/utils/AsymmetricOrdering/Op;)I
CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare (Ljava/nio/ByteBuffer;[B)I
CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compare ([BLjava/nio/ByteBuffer;)I
CompilerOracle: inline org/apache/cassandra/utils/ByteBufferUtil.compareUnsigned (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/lang/Object;JI)I
CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/lang/Object;JILjava/nio/ByteBuffer;)I
CompilerOracle: inline org/apache/cassandra/utils/FastByteOperations$UnsafeOperations.compareTo (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
CompilerOracle: inline org/apache/cassandra/utils/vint/VIntCoding.encodeVInt (JI)[B

我已经安装了 openjdk 版本“1.8.0_292”。谁能指导我遗漏了什么并帮助我解决这个错误。

错误

INFO  18:22:13 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
INFO  18:22:14 Global memtable on-heap threshold is enabled at 499MB
INFO  18:22:14 Global memtable off-heap threshold is enabled at 499MB
ERROR 18:22:14 Port already in use: 7199; nested exception is: 
    java.net.BindException: Address already in use (Bind failed)
java.net.BindException: Address already in use (Bind failed)
    at java.net.PlainSocketImpl.socketBind(Native Method) ~[na:1.8.0_292]
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) ~[na:1.8.0_292]
    at java.net.ServerSocket.bind(ServerSocket.java:390) ~[na:1.8.0_292]
    at java.net.ServerSocket.<init>(ServerSocket.java:252) ~[na:1.8.0_292]
    at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231) ~[na:1.8.0_292]
    at org.apache.cassandra.utils.RMIServerSocketFactoryImpl.createServerSocket(RMIServerSocketFactoryImpl.java:37) ~[apache-cassandra-3.0.24.jar:3.0.24]
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670) ~[na:1.8.0_292]
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:335) ~[na:1.8.0_292]
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:254) ~[na:1.8.0_292]
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:412) ~[na:1.8.0_292]
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[na:1.8.0_292]
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:237) ~[na:1.8.0_292]
    at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:213) ~[na:1.8.0_292]
    at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:173) ~[na:1.8.0_292]
    at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:144) ~[na:1.8.0_292]
    at org.apache.cassandra.service.CassandraDaemon$JmxRegistry.<init>(CassandraDaemon.java:869) ~[apache-cassandra-3.0.24.jar:3.0.24]
    at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:148) [apache-cassandra-3.0.24.jar:3.0.24]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:197) [apache-cassandra-3.0.24.jar:3.0.24]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:611) [apache-cassandra-3.0.24.jar:3.0.24]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:804) [apache-cassandra-3.0.24.jar:3.0.24]


尝试用 brew 安装 Cassandra

brew update

brew install cassandra
ERROR 18:22:14 Port already in use: 7199; nested exception is: 
  java.net.BindException: Address already in use (Bind failed)

好的,所以您 Mac 上的其他东西正在使用 JMX 端口 (7199)。找到并阻止它,或者将 cassandra-env.sh 中的 JMX_PORT 设置为空闲端口。