博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hbase shell 的java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Permission denied错误解决
阅读量:17411 次
发布时间:2019-09-18

本文共 2940 字,大约阅读时间需要 9 分钟。

在客户端机器上安装了hbase客户端,正常的情况下,各用户都应该可以执行hbase shell命令,但是今天发现,在执行hbase shell的时候报错:(贴一些主要的错误信息,省略一些不必要的信息提示)

java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Permission denied

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 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 usr.hdp.$2_dot_5_dot_0_dot_0_minus_1245.hbase.bin.hirb.__file__(/usr/hdp/2.5.0.0-1245/hbase/bin/hirb
at usr.hdp.$2_dot_5_dot_0_dot_0_minus_1245.hbase.bin.hirb.load(/usr/hdp/2.5.0.0-1245/hbase/bin/hirb.rb)
at org.jruby.Ruby.runScript(Ruby.java:697)
at org.jruby.Ruby.runScript(Ruby.java:690)
......

at org.jruby.Main.main(Main.java:188)

Caused by: java.lang.UnsatisfiedLinkError: Permission denied
at com.kenai.jffi.Init.loadFromJar(Init.java:151)
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: Permission denied
from Foreign.java:95:in `getInstance'
from Library.java:151:in `openLibrary'
from Library.java:125:in `getCachedInstance'
........
from Main.java:188:in `main'
Caused by:
Init.java:151:in `loadFromJar': java.lang.UnsatisfiedLinkError: Permission denied
from Init.java:78:in `load'
from Foreign.java:49:in `getInstanceHolder'
.........
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'

从关键词Permission denied可以看的出这是权限问题,经核查发现这是由于hbase的hbase_java_io_tmpdir 的权限问题。

我们的集群管理工具是Ambari,ambari里可以知道HDFS,HIVE,HBASE..等等的配置,查看hbase的配置,其中hbase_java_io_tmpdir的值为:/hadoop/hbasejava_io_tmpdir,如图:

从客户端机器查看该文件夹的权限如图:

可以看到起权限为740,很明细其他的非root组下的用户没有权限使用/hadoop/hbasejava_io_tmpdir 目录,

解决方式: chmod 755 /hadoop即可,

不需要执行到hbasejava_io_tmpdir这级别,即不需要chmod -R 755 /hadoop/hbasejava_io_tmpdir. 因为hbase shell执行过程中会自动生成:hbasejava_io_tmpdir目录,且其权限值为 777,如图:

你可能感兴趣的文章
【Leetcode刷题篇】leetcode938 二叉搜索树的范围和
查看>>
【Leetcode刷题篇】leetcode235 二叉搜索树的最近公共祖先
查看>>
【Leetcode刷题篇】leetcode236 二叉树的最近公共祖先
查看>>
【Leetcode刷题篇】leetcode230 二叉搜索树中第K小的元素
查看>>
【Leetcode刷题篇】leetcode173 二叉搜索树迭代器
查看>>
【Leetcode刷题篇】leetcode99 恢复二叉搜索树
查看>>
【Leetcode刷题篇】leetcode451根据字符出现频率排序
查看>>
【Leetcode刷题篇】leetcode703 数据流中的第k大元素
查看>>
【Leetcode刷题篇】leetcode378 有序矩阵中第K小的元素
查看>>
【Leetcode刷题篇】前K个高频元素
查看>>
【Leetcode刷题篇】leetcode373 查找和最小的K对数字
查看>>
【Leetcode刷题篇】leetcode367 有效的完全平方数
查看>>
【Leetcode刷题篇】剑指offer-数值的整数次方
查看>>
【Leetcode刷题篇】面试题01.06 字符串压缩
查看>>
【Leetcode刷题篇】leetcode443 压缩字符串
查看>>
【面试篇】数据结构-线性表
查看>>
【面试篇】数据结构-树形结构
查看>>
【面试篇】数据结构-哈希表
查看>>
【Leetcode刷题篇】leetcode88 合并两个有序数组
查看>>
【Leetcode刷题篇】剑指offer51 数组中的逆序对
查看>>