启动nodemanager时出错

13z8s7eq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(671)

我更改了一些配置,需要重新启动nodemanager。我收到以下错误消息:

Error starting NodeManager
java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, no leveldbjni in java.library.path, /tmp/libleveldbjni-64-1-1006449310407885041.8: /tmp/libleveldbjni-64-1-1006449310407885041.8: failed to map segment from shared object: Operation not permitted]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
at org.apache.hadoop.yarn.server.nodemanager.recovery.NMLeveldbStateStoreService.initStorage(NMLeveldbStateStoreService.java:864)
at org.apache.hadoop.yarn.server.nodemanager.recovery.NMStateStoreService.serviceInit(NMStateStoreService.java:195)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartRecoveryStore(NodeManager.java:155)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:193)
at org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:462)
at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:509)

似乎我的/tmp文件夹被挂载为noexec。但由于安全问题,我不能重新安装它。我应该怎么做来启动nodemanager,有什么解决办法吗?
谢谢

whlutmcx

whlutmcx1#

是的,有一个解决办法。您可以进入yarn配置并更改java使用的tmp目录。在Yarn配置中,将'-djava.io.tmpdir=/path/to/other/temp/dir'附加到以下属性:1。ApplicationMasterJava选择base 2。jobhistory server 3的java配置选项。nodemanager 4的java配置选项。resourcemanager的java配置选项
对于作业:cloudera manager-->yarn-->搜索:gateway client environment advanced configuration snippet(safety valve)for hadoop-env.sh并添加以下内容:hadoop\u client\u opts=“-djava.io.tmpdir=/path/to/other/temp/dir”
现在重新部署yarn客户端配置。

zxlwwiss

zxlwwiss2#

也许,将leveldbjniwin64-1.8和leveldbjni-1.8下载到java.library.path中就可以了
你可以运行代码 System.out.println(System.getProperty("java.library.path")); 获取java.library.path。

相关问题