Возникла проблема при установке Cassandra на macOS

#java #macos #cassandra #jmx #cassandra-3.0

Вопрос:

Я пытаюсь установить Cassandra 3.11 на macOS (M1) . Я использую установку 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]


 

Комментарии:

1. действительно ли это ошибка? похоже на сообщения компилятора

2. Здесь я согласен с Алексом. Это не ошибка. Ты уверен, что Кассандра не убегает? Помните, что просто запуск bin/cassandra запускает его на переднем плане, поэтому следующее действие на этом терминале убивает процесс.

3. Я отредактировал описание своего вопроса и добавил точные ошибки. Надеюсь, это поможет . Также , когда я пытаюсь получить доступ к cqlsh, я получаю ошибку подключения: («Не удается подключиться ни к каким серверам», {«127.0.0.1»: ошибка(61, «Пытался подключиться к [(‘127.0.0.1’, 9042)]. Последняя ошибка: отказано в подключении»)})

Ответ №1:

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

Хорошо, значит, что-то еще на вашем Mac использует порт JMX (7199). Найдите, что бы это ни было, и остановите это, или отправляйтесь JMX_PORT в cassandra-env.sh свободный порт.

Комментарии:

1. Спасибо Аарону за помощь в решении этой проблемы 🙂

Ответ №2:

Попробуйте установить Cassandra с помощью brew

 brew update

brew install cassandra
 

Комментарии:

1. Я попытался установить с помощью brew , но получил ошибку. Error: cassandra: no bottle available!