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