M1 MacOS上的HBase Shell错误:Fat File,但缺少兼容体系结构(具有' i386,x86_64',需要

发布于 2025-01-31 20:00:17 字数 9038 浏览 2 评论 0 原文

在M1 MacOS上的HOMEBREW。但HBASE shell ry错误的Intall HBase,借助,我添加“ -djruby.native.verbose = true”到hbase shell Consond,然后获得遵循例外:

hbase shell
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
    at jnr.ffi.provider.InvalidProvider$1.loadLibrary(InvalidProvider.java:48)
    at jnr.ffi.LibraryLoader.load(LibraryLoader.java:325)
    at jnr.ffi.Library.loadLibrary(Library.java:127)
    at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:289)
    at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:318)
    at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38)
    at jnr.posix.MacOSPOSIX.<init>(MacOSPOSIX.java:13)
    at jnr.posix.POSIXFactory.loadMacOSPOSIX(POSIXFactory.java:153)
    at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
    at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:93)
    at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
    at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
    at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:402)
    at org.jruby.util.io.FilenoUtil.<init>(FilenoUtil.java:42)
    at org.jruby.Ruby.<init>(Ruby.java:294)
    at org.jruby.Ruby.newInstance(Ruby.java:706)
    at org.jruby.Main.internalRun(Main.java:273)
    at org.jruby.Main.run(Main.java:234)
    at org.jruby.Main.main(Main.java:206)
    at org.jruby.JarBootstrapMain.main(JarBootstrapMain.java:57)
Caused by: java.lang.UnsatisfiedLinkError: could not get native definition for type `POINTER`, original error message follows: java.lang.UnsatisfiedLinkError: Unable to execute or load jffi binary stub from `/var/folders/fc/7tfwnckd6ks68plsldvspgc00000gn/T/`. Set `TMPDIR` or Java property `java.io.tmpdir` to a read/write path that is not mounted "noexec".
/Users/xiaowei/jffi5016109673047262420.dylib: dlopen(/Users/xiaowei/jffi5016109673047262420.dylib, 0x0001): tried: '/Users/xiaowei/jffi5016109673047262420.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64e')), '/usr/lib/jffi5016109673047262420.dylib' (no such file)
    at com.kenai.jffi.internal.StubLoader.tempLoadError(StubLoader.java:424)
    at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:409)
    at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:278)
    at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:487)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.kenai.jffi.Init.load(Init.java:68)
    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:103)
    at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:242)
    at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
    at com.kenai.jffi.Type.resolveSize(Type.java:155)
    at com.kenai.jffi.Type.size(Type.java:138)
    at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178)
    at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:57)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:41)
    at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:53)
    at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49)
    at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
    at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
    at jnr.ffi.Library.loadLibrary(Library.java:114)
    at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:289)
    at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:318)
    at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38)
    at jnr.posix.MacOSPOSIX.<init>(MacOSPOSIX.java:13)
    at jnr.posix.POSIXFactory.loadMacOSPOSIX(POSIXFactory.java:153)
    at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
    at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:93)
    at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
    at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
    at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:402)
    at org.jruby.util.io.FilenoUtil.<init>(FilenoUtil.java:42)
    at org.jruby.Ruby.<init>(Ruby.java:294)
    at org.jruby.Ruby.newInstance(Ruby.java:706)
    at org.jruby.Main.internalRun(Main.java:273)
    at org.jruby.Main.run(Main.java:234)
    at org.jruby.Main.main(Main.java:206)
    at org.jruby.JarBootstrapMain.main(JarBootstrapMain.java:57)

    at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:253)
    at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
    at com.kenai.jffi.Type.resolveSize(Type.java:155)
    at com.kenai.jffi.Type.size(Type.java:138)
    at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178)
    at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:57)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:41)
    at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:53)
    at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49)
    at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
    at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
    at jnr.ffi.Library.loadLibrary(Library.java:114)
    ... 17 more
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/homebrew/Cellar/hadoop/3.3.3/libexec/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/homebrew/Cellar/hbase/2.4.5/libexec/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.4.5, r03b8c0cf426cbae3284225b73040ec574d5bac34, Tue Jul 27 09:44:16 PDT 2021
Took 0.0010 seconds
NotImplementedError: fstat unimplemented unsupported or native support failed to load; see https://github.com/jruby/jruby/wiki/Native-Libraries
  initialize at org/jruby/RubyIO.java:1015
        open at org/jruby/RubyIO.java:1156
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/input-method.rb:141
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/context.rb:70
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb.rb:410
  initialize at uri:classloader:/irb/hirb.rb:47
       start at classpath:/jar-bootstrap.rb:225
      <main> at classpath:/jar-bootstrap.rb:242

java版本:

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (Zulu 8.54.0.21-CA-macos-aarch64) (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (Zulu 8.54.0.21-CA-macos-aarch64) (build 25.292-b10, mixed mode)

java版本: hbase版本:hbase 2.4 hbase 2.4 .5

OS:MACOS 12.0.1

Arch:Apple M1

有什么建议吗?

Intall HBase by homebrew。But HBase shell run error on M1 MacOS, with the help of https://github.com/jruby/jruby/wiki/Native-Libraries, I add "-Djruby.native.verbose=true" to hbase shell commond, then get follow exception:

hbase shell
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
Failed to load native POSIX impl; falling back on Java impl. Stacktrace follows.
java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
    at jnr.ffi.provider.InvalidProvider$1.loadLibrary(InvalidProvider.java:48)
    at jnr.ffi.LibraryLoader.load(LibraryLoader.java:325)
    at jnr.ffi.Library.loadLibrary(Library.java:127)
    at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:289)
    at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:318)
    at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38)
    at jnr.posix.MacOSPOSIX.<init>(MacOSPOSIX.java:13)
    at jnr.posix.POSIXFactory.loadMacOSPOSIX(POSIXFactory.java:153)
    at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
    at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:93)
    at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
    at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
    at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:402)
    at org.jruby.util.io.FilenoUtil.<init>(FilenoUtil.java:42)
    at org.jruby.Ruby.<init>(Ruby.java:294)
    at org.jruby.Ruby.newInstance(Ruby.java:706)
    at org.jruby.Main.internalRun(Main.java:273)
    at org.jruby.Main.run(Main.java:234)
    at org.jruby.Main.main(Main.java:206)
    at org.jruby.JarBootstrapMain.main(JarBootstrapMain.java:57)
Caused by: java.lang.UnsatisfiedLinkError: could not get native definition for type `POINTER`, original error message follows: java.lang.UnsatisfiedLinkError: Unable to execute or load jffi binary stub from `/var/folders/fc/7tfwnckd6ks68plsldvspgc00000gn/T/`. Set `TMPDIR` or Java property `java.io.tmpdir` to a read/write path that is not mounted "noexec".
/Users/xiaowei/jffi5016109673047262420.dylib: dlopen(/Users/xiaowei/jffi5016109673047262420.dylib, 0x0001): tried: '/Users/xiaowei/jffi5016109673047262420.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64e')), '/usr/lib/jffi5016109673047262420.dylib' (no such file)
    at com.kenai.jffi.internal.StubLoader.tempLoadError(StubLoader.java:424)
    at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:409)
    at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:278)
    at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:487)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.kenai.jffi.Init.load(Init.java:68)
    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:103)
    at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:242)
    at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
    at com.kenai.jffi.Type.resolveSize(Type.java:155)
    at com.kenai.jffi.Type.size(Type.java:138)
    at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178)
    at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:57)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:41)
    at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:53)
    at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49)
    at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
    at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
    at jnr.ffi.Library.loadLibrary(Library.java:114)
    at jnr.posix.POSIXFactory$DefaultLibCProvider$SingletonHolder.<clinit>(POSIXFactory.java:289)
    at jnr.posix.POSIXFactory$DefaultLibCProvider.getLibC(POSIXFactory.java:318)
    at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38)
    at jnr.posix.MacOSPOSIX.<init>(MacOSPOSIX.java:13)
    at jnr.posix.POSIXFactory.loadMacOSPOSIX(POSIXFactory.java:153)
    at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:121)
    at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:93)
    at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:38)
    at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:32)
    at jnr.posix.LazyPOSIX.isNative(LazyPOSIX.java:402)
    at org.jruby.util.io.FilenoUtil.<init>(FilenoUtil.java:42)
    at org.jruby.Ruby.<init>(Ruby.java:294)
    at org.jruby.Ruby.newInstance(Ruby.java:706)
    at org.jruby.Main.internalRun(Main.java:273)
    at org.jruby.Main.run(Main.java:234)
    at org.jruby.Main.main(Main.java:206)
    at org.jruby.JarBootstrapMain.main(JarBootstrapMain.java:57)

    at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:253)
    at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
    at com.kenai.jffi.Type.resolveSize(Type.java:155)
    at com.kenai.jffi.Type.size(Type.java:138)
    at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178)
    at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:57)
    at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:41)
    at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:53)
    at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49)
    at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
    at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
    at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
    at jnr.ffi.Library.loadLibrary(Library.java:114)
    ... 17 more
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/homebrew/Cellar/hadoop/3.3.3/libexec/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/homebrew/Cellar/hbase/2.4.5/libexec/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.4.5, r03b8c0cf426cbae3284225b73040ec574d5bac34, Tue Jul 27 09:44:16 PDT 2021
Took 0.0010 seconds
NotImplementedError: fstat unimplemented unsupported or native support failed to load; see https://github.com/jruby/jruby/wiki/Native-Libraries
  initialize at org/jruby/RubyIO.java:1015
        open at org/jruby/RubyIO.java:1156
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/input-method.rb:141
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/context.rb:70
  initialize at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb.rb:410
  initialize at uri:classloader:/irb/hirb.rb:47
       start at classpath:/jar-bootstrap.rb:225
      <main> at classpath:/jar-bootstrap.rb:242

JAVA VERSION:

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (Zulu 8.54.0.21-CA-macos-aarch64) (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (Zulu 8.54.0.21-CA-macos-aarch64) (build 25.292-b10, mixed mode)

HBase Version: HBase 2.4.5

OS: MacOS 12.0.1

Arch: Apple M1

Any Suggestion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌无敌 2025-02-07 20:00:17

该问题被描述为在这里

不幸的是,他们仅针对HBASE 2.6.0修复了它。 3.0.0-Alpha-3。
由于仅替换了Jruby版本,因此我从在这里,然后樱桃键入jruby jar,该罐子存储在 lib/ruby/jruby/jruby-complete-9.4.0.jar < /代码>提取tar.gz文件后。

我用 [hbase-root-dir]/lib/ruby 在我的HBase安装(v 2.2.5 btw)中替换了这个罐子。

The problem is described here.

Unfortunately they fixed it only for HBase 2.6.0 & 3.0.0-alpha-3.
Since only the jruby version is replaced, I loaded the latest Hbase 3.0.0 from here, and cherry-picked the jruby JAR which is stored at lib/ruby/jruby-complete-9.3.4.0.jar after extracting the tar.gz file.

I replaced this JAR with the one in my HBase installation (v 2.2.5 btw) at [hbase-root-dir]/lib/ruby and it worked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文