正在运行MAPR客户端程序。我得到以下异常: java.lang.UnsatisfiedLinkError:com.mapr.security.JNISecurity.SetParsingDone()V at com.mapr.security.JNISecurity.SetParsingDone(Native Method) 在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) at 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.Configuration.loadResource(Configuration.java:2272) 在org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2224) 在org.apache.hadoop.conf.Configuration.getProps(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)
看起来有些库缺失了。 如何解决这个问题?
答案 0 :(得分:0)
如果您在MapR群集的一个或多个节点上运行应用程序,则所有Jar都已存在,如果您从另一台计算机运行,则应安装并配置MapR Client。
然后,您使用的是哪种类型的应用程序?
java -cp ... myClass
?如果您运行的是简单的Java App (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发生冲突的Jars:
cd $HOME/lib_mapr/
rm *servlet*.jar
rm jsp*.jar
rm jetty*.jar
例如,在Tomcat中,您可以将文件夹添加到公共加载程序
shared.loader=/Users/tgrall/lib_mapr/*.jar
如果您在应用程序中使用MapR-DB,则在客户端计算机 aka Edge Machine 上,您应手动将Jars从服务器复制到此文件夹,或使用maprdb客户端软件包。< / p>