Проблема с Marklogic Content Pump

Я пытаюсь загрузить набор данных dbPedia в формате .nt в MarkLogic с помощью MarkLogic Content Pump. Я использую MarkLogic 7 с сервером XDBC, работающим на порту 8005 на моем компьютере. Мои данные находятся в файле persondata_en.nt, и я использую следующую команду для их загрузки.

C:\mlcp-Hadoop2-1.2-1\bin\mlcp import -mode local ^
-host localhost -port 8005 -username admin -password admin ^
-input_file_path "C:\dbp\persondata_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]

Я использую почти ту же команду, которая указана в примерах сценариев загрузки в руководстве здесь. Кто-нибудь раньше сталкивался с этой проблемой? Любая помощь была бы замечательной. Спасибо!


person Krishna Chaitanya    schedule 18.03.2014    source источник
comment
Попадают ли в базу новые тройки? Какие сообщения вы видите в журнале сервера?   -  person mblakele    schedule 18.03.2014


Ответы (2)


Спасибо за помощь ребята. Мне удалось выяснить причину проблемы. Я неправильно настроил параметры для сервера MarkLogic XDBC. Я перезагрузил сервер, следуя инструкциям из документации, и смог успешно вставить тройки в магазин.

person Krishna Chaitanya    schedule 19.03.2014

Вы пробовали -input_file_type rdf вместо -input_file_type RDF? Глядя на http://docs.marklogic.com/guide/ingestion/content-pump Я вижу строчные "rdf" в различных примерах.

Как правило, сообщение «Ошибка синтаксического анализа заголовков HTTP: преждевременный EOF» означает, что ответ от сервера был прерван. Это не очень распространенная ошибка, но я видел, как это происходило по разным причинам.

Одна проблема возникает, когда JVM не хватает памяти. В этом случае он тратит все свое время на сборку мусора, и время ожидания соединения прерывается. Это может показаться маловероятным, поскольку персональные данные должны быть меньше 1 ГиБ, а mlcp в любом случае не должен хранить весь файл в памяти. Но вы можете проверить эту теорию, создав меньший NT-файл, скажем, с 1% или 10% строк. Если вы хотите узнать, как часто выполняется сборщик мусора, добавьте -verbosegc к аргументам JVM в сценарии mlcp.

Еще одна проблема, с которой я столкнулся, - это брандмауэр, который решает закрыть соединение через N секунд. Другой - это сильно перегруженный сервер, который сильно подкачивает или иным образом не может позволить MarkLogic выполнять свою работу.

person mblakele    schedule 18.03.2014