问题
I'm new at hbase. I installed Hadoop 2.3.0 and Hbase 0.98.3 with Java 1.7.0 on Ubuntu 14.04 LTS. When I run "./bin/hbase shell" command, this error occures:
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'
回答1:
I solved my problem. It's about jffi and ffi folders in jruby-complete-1.6.8.jar .I downloaded jruby-complete.1.7.0 from maven repository and i have changed jffi four jffi folder and two ffi folder (their contents have to be same but their paths may be different and 1.7.0 version has one more ffi folder, ommit it.). You can do this with default ubuntu archive program.
回答2:
JRuby tries to create executable files on /tmp
. Maybe your /tmp
folder is mounted with the noexec
flag? [1]
来源:https://stackoverflow.com/questions/24262167/java-lang-runtimeexception-java-lang-unsatisfiedlinkerror-could-not-locate-stu