我正在尝试使用MLCP将数据导入Marklogic服务器。数据采用XML格式,并位于一个archive(zip)文件中。
MLCP以 java.lang.UnsatisfiedLinkError 结尾
我已经尝试过MLCP 8.0.6和MLCP 8.0.7,但两种情况下的错误相同

详细信息:

  • Marklogic服务器8.0-6.3
  • MLCP 8.0.6和MLCP 8.0.7
  • mlcp.bat -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
    

    错误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
    

    最佳答案

    感谢mattsun提供了宝贵的参考。

    就我而言,实际问题是类(class)信息冲突。从MLCP的bin目录中删除.dll文件后,所有内容都像一个 super 按钮一样工作。
    dll和jars都被运送到MLCP软件包中,这就是为什么很难确定实际问题的原因。

    关于hadoop - MLCP导入java.lang.UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45952371/

    10-12 16:45