hadoop - 将ML 9与Connector-for-Hadoop2-2.2.3集成时,不是可用的网络错误吗?

标签 hadoop marklogic marklogic-9

在此ML documentation之后,我通过使用文档中存在的配置来运行示例marklogic-hello-world.xml。我的本地主机名称是ubuntu.localdomain。当我在配置文件中输入相同的内容时,会抛出这样的错误

    18/01/04 22:39:54 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
18/01/04 22:39:54 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
18/01/04 22:39:54 INFO mapred.MapTask: soft limit at 83886080
18/01/04 22:39:54 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
18/01/04 22:39:54 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
18/01/04 22:39:54 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
18/01/04 22:40:05 INFO mapred.MapTask: Starting flush of map output
18/01/04 22:40:05 INFO mapred.LocalJobRunner: map task executor complete.
18/01/04 22:40:05 WARN mapred.LocalJobRunner: job_local196795803_0001
java.lang.Exception: java.lang.IllegalArgumentException: Default provider - Not a usable net address: ubuntu.localdomain:8000
    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: java.lang.IllegalArgumentException: Default provider - Not a usable net address: ubuntu.localdomain:8000
    at com.marklogic.xcc.ContentSourceFactory.defaultConnectionProvider(ContentSourceFactory.java:453)
    at com.marklogic.xcc.ContentSourceFactory.newContentSource(ContentSourceFactory.java:264)
    at com.marklogic.xcc.ContentSourceFactory.newContentSource(ContentSourceFactory.java:321)
    at com.marklogic.mapreduce.utilities.InternalUtilities.getInputContentSource(InternalUtilities.java:127)
    at com.marklogic.mapreduce.MarkLogicRecordReader.init(MarkLogicRecordReader.java:348)
    at com.marklogic.mapreduce.MarkLogicRecordReader.initialize(MarkLogicRecordReader.java:247)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:548)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:786)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.base/java.lang.Thread.run(Thread.java:844)
18/01/04 22:40:05 INFO mapreduce.Job: Job job_local196795803_0001 failed with state FAILED due to: NA
18/01/04 22:40:05 INFO mapreduce.Job: Counters: 0

我的配置文件是这样的
<configuration>
    <property>
        <name>mapreduce.marklogic.input.username</name>
        <value>admin</value>
    </property>
    <property>
        <name>mapreduce.marklogic.input.password</name>
        <value>admin</value>
    </property>
    <property>
        <name>mapreduce.marklogic.input.host</name>
        <value>ubuntu.localdomain</value>
    </property>
    <property>
        <name>mapreduce.marklogic.input.port</name>
        <value>8000</value>
    </property>
    <property>
        <name>mapreduce.marklogic.input.mode</name>
        <value>basic</value>
    </property>
    <property>
        <name>mapreduce.marklogic.input.valueclass</name>
        <value>com.marklogic.mapreduce.DatabaseDocument</value>
    </property>
    <property>
        <name>mapreduce.marklogic.output.username</name>
        <value>admin</value>
    </property>
    <property>
        <name>mapreduce.marklogic.output.password</name>
        <value>admin</value>
    </property>
    <property>
        <name>mapreduce.marklogic.output.host</name>
        <value>ubuntu.localdomain</value>
    </property>
    <property>
        <name>mapreduce.marklogic.output.port</name>
        <value>8000</value>
    </property>
    <property>
        <name>mapreduce.marklogic.output.content.type</name>
        <value>TEXT</value>
    </property>
</configuration>

我已经尝试过为mapreduce.marklogic.input.host127.0.0.1尝试使用的localhost提供各种名称,但是默认情况下它采用ubuntu.localdomain

我不知道为什么它采用默认值而不是我在configuration.xml文件中指定的默认值(即127.0.0.1等)。

我已经使用下面的命令来运行这个
hadoop jar \
  $CONNECTOR_HOME/lib/marklogic-mapreduce-examples-version.jar \
  com.marklogic.mapreduce.examples.HelloWorld -libjars $LIBJARS \
  -conf marklogic-hello-world.xml

如文档中所指定。

我该如何克服呢?任何帮助表示赞赏..

谢谢

最佳答案

通过将Marklogic配置页面中的localhost名称从ubuntu.localdomain更改为localhost来解决此问题,然后上述配置运行良好。但是Still仍然无法找到为什么不从配置文件中选择hostname而是转到ML的原因。

关于hadoop - 将ML 9与Connector-for-Hadoop2-2.2.3集成时,不是可用的网络错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48108662/

相关文章:

hadoop - 大数据 - Lambda 架构和存储原始数据

marklogic - 在 Marklogic 中将 MLCP 内容加载命令作为计划任务执行

json - MarkLogic 8 - 即使我们指定了 JSON,Rest 端点也返回 XML

MarkLogic 森林无效的跨设备链接

hadoop - Hive 主目录中缺少 hive-hwi-0.9.0.war

hadoop - 无法将文件从本地文件系统复制到 cloudera 上的 hadoop/hdfs

Marklogic如何将xquery文件存储到模块数据库中

javascript - 如何遍历 MarkLogic 中的序列值?

javascript - MarkLogic 应用程序服务器自定义登录页面 sessionID cookie 与 GET 请求

hadoop - hive如何存储sequencefile?