Проблемы с путями к классам в MAPR

Я запускаю клиентскую программу MAPR. Я получаю следующее исключение: java.lang.UnsatisfiedLinkError: com.mapr.security.JNISecurity.SetParsingDone()V в com.mapr.security.JNISecurity.SetParsingDone(собственный метод) в com.mapr.baseutils.cldbutils.CLDBRpcCommonUtils.init (CLDBRpcCommonUtils.java:222) в com.mapr.baseutils.cldbutils.CLDBRpcCommonUtils.(CLDBRpcCommonUtils.java:72) в com.mapr.baseutils.cldbutils.CLDBRpcCommonUtils.(CLDBRpcCommonUtils.java:63) в org.apache.hadoop. conf.CoreDefaultProperties.(CoreDefaultProperties.java:68) в java.lang.Class.forName0(собственный метод) в java.lang.Class.forName(Class.java:270) в org.apache.hadoop.conf.Configuration.getClassByNameOrNull (Configuration.java:1847) в org.apache.hadoop.conf.Configuration.getProperties(Configuration.java:2062) в org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2272) в org.apache. hadoop.conf.Configuration.loadResources(Configuration.java:2224) на org.apache.hadoop.conf.Configuration.getPr ops(Configuration.java:2141) в org.apache.hadoop.conf.Configuration.get(Configuration.java:864) в org.apache.hadoop.mapred.JobConf.checkAndWarnDeprecation(JobConf.java:2068) в org.apache .hadoop.mapred.JobConf.(JobConf.java:420)

Похоже, некоторые библиотеки отсутствуют. Как это сделать?


person TheCuriousOne    schedule 12.06.2015    source источник


Ответы (1)


Если вы запускаете свое приложение на одном или нескольких узлах кластера MapR, все файлы Jar уже находятся там, если вы работаете с другого компьютера, вам следует установить и настроить файл Клиент MapR.

Тогда какой тип приложения вы используете?

  1. Простое Java-приложение работает с java -cp ... myClass ?
  2. JavaEE/веб-приложение?

Если вы используете простое Java-приложение (1), вы можете использовать команду hadoop classpath при его запуске, например:

java -cp path/to/your.jar:`hadoop classpath`  you.package.your.class

Если вы хотите запустить веб-приложение, вы должны поместить JAR-файлы в глобальный/общий загрузчик вашего контейнера. Что я делаю для этого:

Создайте новый каталог и скопируйте в него jar-файлы Hadoop.

mkdir $HOME/lib_mapr/
cp /opt/mapr/hadoop/hadoop-0.20.2/lib/*.jar $HOME/lib_mapr/

Удалите банки, которые могут конфликтовать с Tomcat:

cd $HOME/lib_mapr/

rm *servlet*.jar

rm jsp*.jar

rm jetty*.jar

Например, в Tomcat можно добавить папку в общий загрузчик

shared.loader=/Users/tgrall/lib_mapr/*.jar

Если вы используете MapR-DB в своем приложении на клиентской машине также известной как Edge Machine, вам следует вручную скопировать файлы JAR с сервера в эту папку или использовать клиентский пакет maprdb.

person Tug Grall    schedule 15.01.2016