我已经通过Opscenter LCM配置了Cassandra集群。当opscenter LCM尝试在最后阶段启动DSE时,它将失败并显示以下错误。
WARN [main] 2018-07-20 12:24:27,504 FileSystemUtil.java:40 - JNA failed to register native C library: /tmp/jna-1073564104/jna8515864028978163146.tmp: /tmp/jna-1073564104/jna8515864028978163146.tmp: failed to map segment from shared object: Operation not permitted
{
WARN [main] 2018-07-20 12:24:27,576 NativeLibraryLinux.java:59 - JNA not found. Native methods will be disabled.
Exception (java.lang.UnsatisfiedLinkError) encountered during startup: org.apache.cassandra.utils.NativeLibraryLinux.getpid()J
java.lang.UnsatisfiedLinkError: org.apache.cassandra.utils.NativeLibraryLinux.getpid()J
at org.apache.cassandra.utils.NativeLibraryLinux.getpid(Native Method)
at org.apache.cassandra.utils.NativeLibraryLinux.callGetpid(NativeLibraryLinux.java:124)
at org.apache.cassandra.utils.NativeLibrary.getProcessID(NativeLibrary.java:429)
at org.apache.cassandra.utils.UUIDGen.hash(UUIDGen.java:386)
at org.apache.cassandra.utils.UUIDGen.makeNode(UUIDGen.java:367)
at org.apache.cassandra.utils.UUIDGen.makeClockSeqAndNode(UUIDGen.java:300)
at org.apache.cassandra.utils.UUIDGen.<clinit>(UUIDGen.java:41)
at org.apache.cassandra.utils.ByteBufferUtil.bytes(ByteBufferUtil.java:659)
at org.apache.cassandra.schema.TableId.toHexString(TableId.java:79)
at org.apache.cassandra.db.Directories.<init>(Directories.java:201)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:634)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:626)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:514)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:372)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:149)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:124)
at org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:225)
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:1554)
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:1424)
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:1413)
at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:735)
at org.apache.cassandra.cql3.QueryProcessor.executeOnceInternal(QueryProcessor.java:488)
at com.datastax.bdp.server.DseDaemon.getLastKnownDseVersion(DseDaemon.java:692)
at com.datastax.bdp.server.DseDaemon.checkIfRequiredUpgradeIsSkippedAndSetDseVersion(DseDaemon.java:680)
at com.datastax.bdp.server.DseDaemon.preSetup(DseDaemon.java:654)
at com.datastax.bdp.server.DseDaemon.setup(DseDaemon.java:495)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:669)
at com.datastax.bdp.DseModule.main(DseModule.java:91)
ERROR [main] 2018-07-20 12:24:27,581 CassandraDaemon.java:820 - Exception encountered during startup
java.lang.UnsatisfiedLinkError: org.apache.cassandra.utils.NativeLibraryLinux.getpid()J
at org.apache.cassandra.utils.NativeLibraryLinux.getpid(Native Method) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.NativeLibraryLinux.callGetpid(NativeLibraryLinux.java:124) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.NativeLibrary.getProcessID(NativeLibrary.java:429) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.UUIDGen.hash(UUIDGen.java:386) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.UUIDGen.makeNode(UUIDGen.java:367) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.UUIDGen.makeClockSeqAndNode(UUIDGen.java:300) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.UUIDGen.<clinit>(UUIDGen.java:41) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.utils.ByteBufferUtil.bytes(ByteBufferUtil.java:659) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.schema.TableId.toHexString(TableId.java:79) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.Directories.<init>(Directories.java:201) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:634) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:626) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:514) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:372) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:149) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:124) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:225) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:1554) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:1424) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:1413) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:735) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at org.apache.cassandra.cql3.QueryProcessor.executeOnceInternal(QueryProcessor.java:488) ~[dse-db-all-4.0.0.2284.jar:4.0.0.2284]
at com.datastax.bdp.server.DseDaemon.getLastKnownDseVersion(DseDaemon.java:692) ~[dse-core-6.0.0.jar:6.0.0]
}
奇怪的是,如果您在服务器上手动附加cassandra-env.sh并将/ tmp路径设置为- JVM_OPTS =“ $ JVM_OPTS -Djna.tmpdir = / path_to_directory” 并在服务器上手动启动DSE,它可以正常启动。
但是LCM出了什么问题? 我为新的/ tmp路径添加了附加的jvm选项。
如何在opscenter LCM中解决此问题?
请注意-其DSE 6.0
谢谢
答案 0 :(得分:2)
LCM开发人员在这里。您的环境有一些不寻常的地方,您没有说明在手动启动顺序中配置的临时目录。
我认为默认情况下DSE可能不支持将tmp挂载到noexec吗?手动tmpdir和/ tmp之间的挂载选项是否有所不同?权限是否有所不同?
或者,LCM的jvm.options页面作为“ additional-jvm-options”列表,您可以向其中添加任意-D选项。如果您不知道是什么环境怪异导致此问题,可以告诉LCM使用您一直在手动测试的其他选项来配置DSE。