2015-06-12 62 views
1

正在运行MAPR客户端程序。我收到以下异常: java.lang.UnsatisfiedLinkError:com.mapr.security.JNISecurity.SetParsingDone()V at com.mapr.security.JNISecurity.SetParsingDone(Native Method) at 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) 的组织。 apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:1847) 在org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2272) 处的org.apache.hadoop.conf.Configuration.getProperties(Configuration.java:2062) at org.apache.hadoop.conf.Configuration .loadResources(Configuration.java:2224) at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2141) at 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)MAPR中的类路径问题

看起来有些库丢失。 如何解决这个问题?

回答

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应用程序,应该将罐子放入容器的全局/通用装载程序中。我这个做什么:

创建一个新的目录,并复制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在您的应用程序,在客户机上又名边机,您应该手动将罐子从服务器复制到这个文件夹,或者使用maprdb客户端软件包。