I am trying to import data into Marklogic server with MLCP. The data is in XML and inside an archive(zip) file.
MLCP is ending with java.lang.UnsatisfiedLinkError
I have tried with MLCP 8.0.6 and MLCP 8.0.7 but the error is same in both cases
Details:
- Marklogic server 8.0-6.3
- MLCP 8.0.6 and MLCP 8.0.7
- mlcp.bat -options_file "options file path"
Options file
import
-host
localhost
-port
8907
-mode
local
-database
dj_test
-username
admin
-password
admin
-input_file_path
"C:\Users\djoshi16\Documents\training-project-data\"
-input_compressed
true
-input_file_type
archive
-thread_count
4
Error StackTrace
c:\windows\system32>"c:\Users\djoshi\Documents\mlcp-8.0.6\bin\mlcp.bat" -options_file c:\Users\djoshi\Documents\training-project-data-import.options
17/08/29 20:49:47 INFO contentpump.LocalJobRunner: Content type: XML
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:131)
at org.apache.hadoop.security.Groups.<init>(Groups.java:70)
at org.apache.hadoop.security.Groups.<init>(Groups.java:66)
at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:280)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:271)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:248)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:763)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:748)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:621)
at org.apache.hadoop.mapreduce.task.JobContextImpl.<init>(JobContextImpl.java:72)
at org.apache.hadoop.mapreduce.Job.<init>(Job.java:144)
at org.apache.hadoop.mapreduce.Job.getInstance(Job.java:187)
at com.marklogic.contentpump.Command$1.createJob(Command.java:349)
at com.marklogic.contentpump.ContentPump.runCommand(ContentPump.java:192)
at com.marklogic.contentpump.ContentPump.main(ContentPump.java:62)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:129)
... 14 more
Caused by: java.lang.UnsatisfiedLinkError: org.apache.hadoop.security.JniBasedUnixGroupsMapping.anchorNative()V
at org.apache.hadoop.security.JniBasedUnixGroupsMapping.anchorNative(Native Method)
at org.apache.hadoop.security.JniBasedUnixGroupsMapping.<clinit>(JniBasedUnixGroupsMapping.java:49)
at org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback.<init>(JniBasedUnixGroupsMappingWithFallback.java:39)
... 19 more
Thanks mattsun for the valuable reference.
In my case the actual issue was conflicting class information. After removing .dll file from the bin directory of MLCP everything worked like a charm. Both dll and jars were shipped into the MLCP package and that is why it was hard to identify the actual issue.