java.lang.RuntimeException:java.lang.UnsatisfiedLinkError:找不到jar文件中的存根库

时间:2014-06-17 11:05:36

标签: linux hbase unsatisfiedlinkerror

我是hbase的新人。我用Java 1.7.0安装了Hadoop 2.3.0和Hbase 0.98.3 在Ubuntu 14.04 LTS上。 当我运行" ./ bin / hbase shell"命令,发生此错误:

java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
at com.kenai.jffi.Foreign$InValidInstanceHolder.getForeign(Foreign.java:90)
at com.kenai.jffi.Foreign.getInstance(Foreign.java:95)
at com.kenai.jffi.Library.openLibrary(Library.java:151)
at com.kenai.jffi.Library.getCachedInstance(Library.java:125)
at com.kenai.jaffl.provider.jffi.Library.loadNativeLibraries(Library.java:66)
at com.kenai.jaffl.provider.jffi.Library.getNativeLibraries(Library.java:56)
at com.kenai.jaffl.provider.jffi.Library.getSymbolAddress(Library.java:35)
at com.kenai.jaffl.provider.jffi.Library.findSymbolAddress(Library.java:45)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:188)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.loadLibrary(AsmLibraryLoader.java:110)
at com.kenai.jaffl.provider.jffi.Provider.loadLibrary(Provider.java:31)
at com.kenai.jaffl.provider.jffi.Provider.loadLibrary(Provider.java:25)
at com.kenai.jaffl.Library.loadLibrary(Library.java:76)
at org.jruby.ext.posix.POSIXFactory$LinuxLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:108)
at org.jruby.ext.posix.POSIXFactory$LinuxLibCProvider.getLibC(POSIXFactory.java:112)
at org.jruby.ext.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:30)
at org.jruby.ext.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:17)
at org.jruby.ext.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:70)
at org.jruby.ext.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:31)
at org.jruby.ext.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:29)
at org.jruby.ext.posix.LazyPOSIX.posix(LazyPOSIX.java:25)
at org.jruby.ext.posix.LazyPOSIX.isatty(LazyPOSIX.java:159)
at org.jruby.RubyIO.tty_p(RubyIO.java:1897)
at org.jruby.RubyIO$i$0$0$tty_p.call(RubyIO$i$0$0$tty_p.gen:65535)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63)
at org.jruby.ast.IfNode.interpret(IfNode.java:111)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:183)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at org.jruby.ast.VCallNode.interpret(VCallNode.java:86)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:191)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:148)
at org.jruby.RubyClass.newInstance(RubyClass.java:822)
at org.jruby.RubyClass$i$newInstance.call(RubyClass$i$newInstance.gen:65535)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrNBlock.call(JavaMethod.java:249)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
at home.bytedeer.Kütüphaneler.hbase_minus_0_dot_98_dot_3_minus_hadoop2.bin.$_dot_dot_.bin.hirb.__file__(/home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110)
at home.bytedeer.Kütüphaneler.hbase_minus_0_dot_98_dot_3_minus_hadoop2.bin.$_dot_dot_.bin.hirb.load(/home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb)
at org.jruby.Ruby.runScript(Ruby.java:697)
at org.jruby.Ruby.runScript(Ruby.java:690)
at org.jruby.Ruby.runNormally(Ruby.java:597)
at org.jruby.Ruby.runFromMain(Ruby.java:446)
at org.jruby.Main.doRunFromMain(Main.java:369)
at org.jruby.Main.internalRun(Main.java:258)
at org.jruby.Main.run(Main.java:224)
at org.jruby.Main.run(Main.java:208)
at org.jruby.Main.main(Main.java:188)
Caused by: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
at com.kenai.jffi.Init.getStubLibraryStream(Init.java:201)
at com.kenai.jffi.Init.loadFromJar(Init.java:136)
at com.kenai.jffi.Init.load(Init.java:78)
at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:49)
at com.kenai.jffi.Foreign$InstanceHolder.<clinit>(Foreign.java:45)
at com.kenai.jffi.Foreign.getInstance(Foreign.java:95)
at com.kenai.jffi.Internals.getErrnoSaveFunction(Internals.java:44)
at com.kenai.jaffl.provider.jffi.StubCompiler.getErrnoSaveFunction(StubCompiler.java:68)
at com.kenai.jaffl.provider.jffi.StubCompiler.<clinit>(StubCompiler.java:18)
at com.kenai.jaffl.provider.jffi.AsmLibraryLoader.generateInterfaceImpl(AsmLibraryLoader.java:146)
... 50 more
Foreign.java:90:in `getForeign': java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
from Foreign.java:95:in `getInstance'
from Library.java:151:in `openLibrary'
from Library.java:125:in `getCachedInstance'
from Library.java:66:in `loadNativeLibraries'
from Library.java:56:in `getNativeLibraries'
from Library.java:35:in `getSymbolAddress'
from Library.java:45:in `findSymbolAddress'
from DefaultInvokerFactory.java:51:in `createInvoker'
from Library.java:27:in `getInvoker'
from NativeInvocationHandler.java:90:in `createInvoker'
from NativeInvocationHandler.java:74:in `getInvoker'
from NativeInvocationHandler.java:110:in `invoke'
from null:-1:in `isatty'
from BaseNativePOSIX.java:300:in `isatty'
from LazyPOSIX.java:159:in `isatty'
from RubyIO.java:1897:in `tty_p'
from RubyIO$i$0$0$tty_p.gen:65535:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from CallNoArgNode.java:63:in `interpret'
from IfNode.java:111:in `interpret'
from NewlineNode.java:104:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:183:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from VCallNode.java:86:in `interpret'
from NewlineNode.java:104:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:169:in `call'
from DefaultMethod.java:191:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:144:in `callBlock'
from CachingCallSite.java:148:in `call'
from RubyClass.java:822:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:249:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110:in `__file__'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:-1:in `load'
from Ruby.java:697:in `runScript'
from Ruby.java:690:in `runScript'
from Ruby.java:597:in `runNormally'
from Ruby.java:446:in `runFromMain'
from Main.java:369:in `doRunFromMain'
from Main.java:258:in `internalRun'
from Main.java:224:in `run'
from Main.java:208:in `run'
from Main.java:188:in `main'
Caused by:
Init.java:201:in `getStubLibraryStream': java.lang.UnsatisfiedLinkError: Could not locate stub library in jar file.  Tried [jni/ı386-Linux/libjffi-1.0.so, /jni/ı386-Linux/libjffi-1.0.so]
from Init.java:136:in `loadFromJar'
from Init.java:78:in `load'
from Foreign.java:49:in `getInstanceHolder'
from Foreign.java:45:in `<clinit>'
from Foreign.java:95:in `getInstance'
from Internals.java:44:in `getErrnoSaveFunction'
from StubCompiler.java:68:in `getErrnoSaveFunction'
from StubCompiler.java:18:in `<clinit>'
from AsmLibraryLoader.java:146:in `generateInterfaceImpl'
from AsmLibraryLoader.java:110:in `loadLibrary'
from Provider.java:31:in `loadLibrary'
from Provider.java:25:in `loadLibrary'
from Library.java:76:in `loadLibrary'
from POSIXFactory.java:108:in `<clinit>'
from POSIXFactory.java:112:in `getLibC'
from BaseNativePOSIX.java:30:in `<init>'
from LinuxPOSIX.java:17:in `<init>'
from POSIXFactory.java:70:in `loadLinuxPOSIX'
from POSIXFactory.java:31:in `loadPOSIX'
from LazyPOSIX.java:29:in `loadPOSIX'
from LazyPOSIX.java:25:in `posix'
from LazyPOSIX.java:159:in `isatty'
from RubyIO.java:1897:in `tty_p'
from RubyIO$i$0$0$tty_p.gen:65535:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from CallNoArgNode.java:63:in `interpret'
from IfNode.java:111:in `interpret'
from NewlineNode.java:104:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:147:in `call'
from DefaultMethod.java:183:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from VCallNode.java:86:in `interpret'
from NewlineNode.java:104:in `interpret'
from BlockNode.java:71:in `interpret'
from ASTInterpreter.java:74:in `INTERPRET_METHOD'
from InterpretedMethod.java:169:in `call'
from DefaultMethod.java:191:in `call'
from CachingCallSite.java:302:in `cacheAndCall'
from CachingCallSite.java:144:in `callBlock'
from CachingCallSite.java:148:in `call'
from RubyClass.java:822:in `newInstance'
from RubyClass$i$newInstance.gen:65535:in `call'
from JavaMethod.java:249:in `call'
from CachingCallSite.java:292:in `cacheAndCall'
from CachingCallSite.java:135:in `call'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:110:in `__file__'
from /home/bytedeer/Kütüphaneler/hbase-0.98.3-hadoop2/bin/../bin/hirb.rb:-1:in `load'
from Ruby.java:697:in `runScript'
from Ruby.java:690:in `runScript'
from Ruby.java:597:in `runNormally'
from Ruby.java:446:in `runFromMain'
from Main.java:369:in `doRunFromMain'
from Main.java:258:in `internalRun'
from Main.java:224:in `run'
from Main.java:208:in `run'
from Main.java:188:in `main'

2 个答案:

答案 0 :(得分:1)

我解决了我的问题。关于jruby-complete-1.6.8.jar中的jffi和ffi文件夹。我从maven资源库下载了jruby-complete.1.7.0,我更改了jffi四个jffi文件夹和两个ffi文件夹(它们的内容必须是相同,但他们的路径可能不同,1.7.0版本有一个更多的ffi文件夹,省略它。)。您可以使用默认的ubuntu归档程序执行此操作。

答案 1 :(得分:0)

JRuby尝试在/tmp上创建可执行文件。也许您的/tmp文件夹装有noexec标志? [1]