1

我正在运行 MAPR 客户端程序。我得到以下异常: java.lang.UnsatisfiedLinkError: com.mapr.security.JNISecurity.SetParsingDone(Native Method) at com.mapr.baseutils.cldbutils.CLDBRpcCommonUtils.init 的 com.mapr.security.JNISecurity.SetParsingDone()V (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(Native Method) 在 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。

看起来有些图书馆不见了。如何解决这个问题?

4

1 回答 1

0

如果您在 MapR 集群的一个或多个节点上运行应用程序,则所有 Jar 都已经存在,如果您在另一台机器上运行,则应安装和配置MapR Client

那么,您使用的是哪种类型的应用程序?

  1. 简单的 Java 应用程序运行在java -cp ... myClass?
  2. JavaEE/Web 应用程序 ?

如果您正在运行一个简单的 Java 应用程序(1),您可以在运行它时使用该hadoop classpath命令,例如:

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

如果您想运行 Web 应用程序,您应该将 Jars 放在容器的 Global/Common 加载器中。我为此做什么:

创建一个新目录,并将 hadoop jar 复制到此文件夹中

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 中,您可以将文件夹添加到 common loader

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

如果您在应用程序中使用 MapR-DB,在 Client Machine aka Edge Machine上,您应该手动将 Jars 从服务器复制到此文件夹,或使用 maprdb 客户端包。

于 2016-01-15T07:33:28.567 回答