web-dev-qa-db-ja.com

Cassandra and Java 9-ThreadPriorityPolicy = 42は許容範囲外です

ごく最近、JDK 9とApache Cassandra=を公式サイトからインストールしました。しかし、今、フォアグラウンドでcassandra=を開始すると、このメッセージが表示されます。

Apache-cassandra-3.11.1/bin$ ./cassandra -f

[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/home/mmatak/monero/Apache-cassandra-3.11.1/logs/gc.log instead.
intx ThreadPriorityPolicy=42 is outside the allowed range [ 0 ... 1 ]
Improperly specified VM option 'ThreadPriorityPolicy=42'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

これまでのところ、これに対する解決策は見つかりませんでした。 Java 9とCassandraはまだ互換性がありませんか?ここにその問題も記載されています #CASSANDRA-13107 =

しかし、「フラグを削除する」方法がわからないのですか?このフラグを上書きまたは削除できるのはどこですか?

20
Martin Matak

私はまったく同じ問題を抱えていました: 開始できませんCassandra(CentOS7上のシングルノードクラスター)

それがオプションである場合、Java 9の代わりに8を使用することが、問題を解決する最も簡単な方法です。

7
wiaylise

@Martin Matak conf/jvm.optionsファイル内のその行をコメントアウトするだけです:

########################
# GENERAL JVM SETTINGS #
########################



# allows lowering thread priority without being root on linux - probably
# not necessary on Windows but doesn't harm anything.
# see http://tech.stolsvik.com/2010/01/linux-Java-thread-priorities-workaround.html
**#-XX:ThreadPriorityPolicy=42**
7
Jay Wojick

次のenv変数を設定すると、MAC export Java8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

4

質問への解決策

この例外の理由

  1. おそらくJDK9、JDK 10が実行されている複数のJDKバージョンがこの例外の原因です。
  2. JDK 8バージョンのみを指すようにパスを設定します。
  3. 現在、cassandra 3.1はjdk 8以上でのみ実行することが望まれます。

Cassandra-Confファイルの変更(/opt/Apache-cassandra-3.11.2/conf/cassandra-env.sh)

4。より高いJDKバージョンを使用する場合は、OSに基づいてシステムパス変数を更新します。

1

あります jvm.optionsそれを設定するconfディレクトリ内:

https://github.com/Apache/cassandra/blob/12d4e2f189fb228250edc876963d0c74b5ab0d4f/conf/jvm.options#L96

0
Chris Lohfink

Jay's answer から、macOSでHomebrewを使用してインストールした場合:ファイルはlocal/etc/cassandra/jvm.optionsにあります。

0
Bradley Mackey