在启动HBase shell时,报错“java.lang.UnsatisfiedLinkError: Permission denied”
问题
在启动HBase shell时,为什么会发生“java.lang.UnsatisfiedLinkError: Permission denied”异常?
回答
在执行HBase shell期间,JRuby会在“java.io.tmpdir”路径下创建一个临时文件,该路径的默认值为“/tmp”。如果为“/tmp”目录设置NOEXEC权限,然后HBase shell会启动失败并发生“java.lang.UnsatisfiedLinkError: Permission denied”异常。
因此,如果为“/tmp”目录设置了NOEXEC权限,那么“java.io.tmpdir”必须设置为HBASE_OPTS/CLIENT_GC_OPTS中不同的路径。