我试图使用maxine在Voldemort上运行单节点集群并遇到了这个问题。它似乎与JNA有关?请你帮助我好吗?
这是我使用的命令:
./maxine/com.oracle.max.vm.native/generated/linux/maxvm -cp .voldemort/voldemort-release-1.9.0-cutoff/dist/voldemort-1.9.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/dist/voldemort-1.9.0-src.jar:.voldemort/voldemort-release-1.9.0-cutoff/dist/voldemort-contrib-1.9.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/dist/voldemort-test-1.9.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/avro-1.4.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/azkaban-common-0.05.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/catalina-ant.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/colt-1.2.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-codec-1.4.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-collections-3.2.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-configuration-1.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-dbcp-1.2.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-io-1.4.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-lang-2.4.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-logging-1.1.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/commons-pool-1.5.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/compress-lzf-0.9.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/data-1.15.18.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/gson-2.2.4.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/guava-14.0.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/hadoop-auth-2.0.5-alpha.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/hadoop-core-1.0.4.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/httpclient-4.1.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/httpcore-4.1.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jackson-core-asl-1.4.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jackson-mapper-asl-1.4.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jdom-1.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/je-5.0.88.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jetty-6.1.18.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jetty-util-6.1.18.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jline-0.9.94.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jna.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/joda-time-1.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/jopt-simple-4.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/junit-4.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/krati-0.3.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/libthrift-0.5.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/log4j-1.2.15.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/mail-1.4.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/mockito-all-1.8.5.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/netty-3.5.8.Final.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/paranamer-2.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/pegasus-common-1.15.18.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/protobuf-java-2.3.0.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/r2-1.15.18.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/scala-compiler-2.10.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/scala-library-2.10.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/scala-reflect-2.10.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/servlet-api-2.5.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/slf4j-api-1.5.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/slf4j-log4j12-1.5.6.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/snappy-0.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/tehuti-0.5.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/tusk-0.0.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/typica-1.7.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/velocity-1.6.2.jar:.voldemort/voldemort-release-1.9.0-cutoff/lib/xercesImpl-2.9.1.jar:.voldemort/voldemort-release-1.9.0-cutoff/contrib/*/lib/*.jar:.voldemort/voldemort-release-1.9.0-cutoff/dist/resources -Dlog4j.configuration=file://.voldemort/voldemort-release-1.9.0-cutoff/src/java/log4j.properties -Xmx2G -server -Dcom.sun.management.jmxremote voldemort.server.VoldemortServer config/single_node_cluster/
我获得的错误输出:
[14:38:18,735 voldemort.store.metadata.MetadataStore] INFO元数据init()。 [main] [14:38:18,999 voldemort.cluster.Node] WARN admin-port没有为节点定义:0使用默认值(socket_port + 1):6667 [main] [14:38:19,086 voldemort.store.metadata。 MetadataStore] INFO更新所有商店的路由策略[主要] [14:38:20,163 voldemort.server.VoldemortServer] INFO使用NIO连接器。 [main] [14:38:20,304 voldemort.server.VoldemortServer] INFO使用NIO Connector进行管理服务。 [main] [14:38:20,306 voldemort.common.service.VoldemortService] INFO启动voldemort-server [main] [14:38:20,425 voldemort.utils.JNAUtils] INFO无法链接到本机库[main]线程中的异常“main”java.lang.UnsatisfiedLinkError:Java_voldemort_utils_JNAUtils_mlockall __I at com.sun.max.vm.jni.DynamicLinker.lookup(DynamicLinker.java:271)at com.sun.max.vm.actor.member.NativeFunction.link0(NativeFunction .java:117)at com.sun.max.vm.actor.member.NativeFunction.link(NativeFunction.java:110)at voldemort.utils.JNAUtils.mlockall(Native Method)at voldemort.utils.JNAUtils.tryMlockall(JNAUtils) .java:51)at voldemort.server.VoldemortServer.startInner(VoldemortServer.java:328)at voldemort.common.service.AbstractService.start(AbstractService.java:62)at voldemort.server.VoldemortServer.main(VoldemortServer.java: 384)在com.sun.max.vm上的com.sun.max.vm.run.java.JavaRunScheme.lookupAndInvokeMain(JavaRunScheme.java:376)的java.lang.reflect.Method.invoke(Method.java:606) .run.java.Ja vaRunScheme.run(JavaRunScheme.java:333)位于com.sun.max.vm.thread.VmThread.executeRunnable(VmThread.java:511)的com.sun.max.vm.thread.VmThread.run(VmThread.java: 682)
谢谢!
该问题与Maxine VM中缺少sun.misc.Unsafe.getLoadAverage
方法的实现有关。
提交https://github.com/beehive-lab/Maxine-VM/commit/9f36e8a1d9fa54d74b8bfa3f632814a7be9e2ae2解决此问题,直到提供实际实现。