2016-05-31 4 views
0

Я меняю конфигурацию и вам нужно перезапустить nodemanager. Появляется следующее сообщение об ошибке:Ошибка при запуске 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) 

Похоже, что папка my/tmp смонтирована как noexec. Но для проблемы безопасности я не могу ее перемонтировать. Что мне делать, чтобы начать nodemanager, есть ли какая-нибудь работа?

Благодаря

ответ

0

возможно, загрузка leveldbjniwin64-1.8 и leveldbjni-1.8 в вашей java.library.path может работать

пс. вы можете запустить код System.out.println(System.getProperty("java.library.path")); , чтобы получить свой java.library.path.

0

Да, есть обходное решение. Вы можете войти в конфигурацию YARN и изменить каталог tmp, который использует java. В конфигурации YARN добавьте '-Djava.io.tmpdir =/path/to/other/temp/dir' к следующим свойствам: 1. База приложений ApplicationMaster Java Opts 2. Параметры конфигурации Java для сервера JobHistory 3. Конфигурация Java Варианты NodeManager параметры 4. Конфигурация Java для ResourceManager

для работ: Cloudera менеджера -> ПРЯЖА -> поиск: шлюз среды клиента Advanced Configuration Snippet (клапан безопасности) для hadoop-env.sh и добавить : HADOOP_CLIENT_OPTS = "- Djava.io.tmpdir =/path/to/other/temp/dir"

Теперь передислоцируйте клиентский терминал YARN фигурации.

Смежные вопросы