Marklogic内容泵问题



我正在尝试使用MarkLogic内容泵加载。nt格式的dbPedia数据集到MarkLogic。我使用的是MarkLogic 7, XDBC服务器在我的机器的8005端口上运行。我的数据存在于一个文件persondata_en中。我使用以下命令来加载它。

C:mlcp-Hadoop2-1.2-1binmlcp import -mode local ^
-host localhost -port 8005 -username admin -password admin ^
-input_file_path "C:dbppersondata_en.nt" ^
-input_file_type RDF

这个命令会导致一个过早的EOF异常,如下所示。

2014-03-18 11:56:28.401 WARNING [1] (AbstractRequestController.runRequest): Error         parsing HTTP headers: Premature EOF, partial header line read: ''
2014-03-18 11:56:28.503 WARNING [1] (AbstractRequestController.runRequest): Error  parsing HTTP headers: Premature EOF, partial header line read: ''
2014-03-18 11:56:28.605 WARNING [1] (AbstractRequestController.runRequest): Error parsing HTTP headers: Premature EOF, partial header line read: ''
2014-03-18 11:56:28.707 WARNING [1] (AbstractRequestController.runRequest): Error parsing HTTP headers: Premature EOF, partial header line read: ''
2014-03-18 11:56:28.809 WARNING [1] (AbstractRequestController.runRequest): Error parsing HTTP headers: Premature EOF, partial header line read: ''
2014-03-18 11:56:28.810 INFO [1] (AbstractRequestController.runRequest): automatic query  retries (5) exhausted, throwing: com.marklogic.xcc.exceptions.ServerConnectionException:    Error parsing
 [Session: user=admin, cb={default} [ContentSource: user=admin, cb={none} [provider:  address=localhost/127.0.0.1:8005, pool=0/64]]]
 [Client: XCC/7.0-20140204]
 com.marklogic.xcc.exceptions.ServerConnectionException: Error parsing HTTP headers:     Premature EOF, partial header line read: ''
 [Session: user=admin, cb={default} [ContentSource: user=admin, cb={none} [provider:  address=localhost/127.0.0.1:8005, pool=0/64]]]
 [Client: XCC/7.0-20140204]

我使用的命令与本教程中示例加载脚本中指定的命令基本相同。以前有人遇到过这个问题吗?任何帮助都太好了。谢谢!

谢谢大家的帮助。我设法找出了这个问题的原因。我没有正确配置MarkLogic XDBC服务器的设置。我按照文档中的说明重置了服务器,并且能够成功地将三元组插入到存储中。

您试过-input_file_type rdf而不是-input_file_type RDF吗?查看http://docs.marklogic.com/guide/ingestion/content-pump,我在各种示例中看到小写的"rdf"。

一般来说,"解析HTTP报头错误:过早EOF"意味着来自服务器的响应被中断。这不是一个非常常见的错误,但我看到它发生的各种原因。

JVM内存不足时会出现一个问题。在这种情况下,它将所有时间都用于垃圾收集,并且连接超时。这似乎不太可能,因为个人数据应该小于1gb, mlcp不应该需要内存中的整个文件。但是,您可以通过制作一个更小的nt文件来测试该理论,例如,使用1%或10%的行。如果您想查看GC的运行频率,可以将-verbosegc添加到mlcp脚本中的JVM参数中。

我看到的另一个问题是防火墙决定在N秒后关闭连接。另一种是严重超载的服务器——分页过多或者无法让MarkLogic完成工作。

相关内容

  • 没有找到相关文章

最新更新