Opscenter LCM 集群 dse 未启动

Posted

技术标签:

【中文标题】Opscenter LCM 集群 dse 未启动【英文标题】:Opscenter LCM cluster dse not starting 【发布时间】:2018-12-28 16:03:38 【问题描述】:

我已经通过 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

谢谢

【问题讨论】:

【参考方案1】:

LCM 开发人员在这里。您的环境有一些不寻常之处,并且您没有说明您在手动启动序列中配置的临时目录。

我认为默认情况下 DSE 可能不支持 tmp 被挂载 noexec?您的手动 tmpdir 和 /tmp 之间的挂载选项有区别吗?权限有区别吗?

或者,LCM 的 jvm.options 页面作为“附加-jvm-options”列表,您可以添加任意 -D 选项。如果您不知道是什么环境问题导致了这个问题,您可以告诉 LCM 使用您手动测试的额外选项来配置 DSE。

【讨论】:

以上是关于Opscenter LCM 集群 dse 未启动的主要内容,如果未能解决你的问题,请参考以下文章

DataStax OpsCenter 未在 centos dse 集群上启动

获取“启动 DynamicEnvironmentComponent 时出错。”在盯着 OpsCenter 6.5 代理.DSE 6.0.1

OpsCenter 6.7.7 不会管理在以下平台上运行的现有 cassandra 集群 (dse 6.7.7):redhat 7.6 Maipo

如何以及在何处配置 DSE Opscenter 堆大小和任何其他 JVM 参数

完整备份还原需要哪些 DSE 密钥空间?

DSE:激活 OLAP