mlcp не загружает большое количество файлов в каталоге
СМОТРЕТЬ РЕДАКТИРОВАТЬ НИЖЕ
мы используем MarkLogic Content Pump для загрузки данных в базу данных ML8. У нас есть среда разработки, в которой все в порядке, и программа, в которой mlcp не получит оценку количества файлов для обработки.
У нас есть 2,1 миллиона документов JSON, которые мы хотим загрузить.
На сервере dev (ML8 + CentOS6) мы видим это:
15/07/13 13:19:35 INFO contentpump.ContentPump: Hadoop library version: 2.0.0-alpha
15/07/13 13:19:35 INFO contentpump.LocalJobRunner: Content type is set to MIXED. The format of the inserted documents will be determined by the MIME type specification configured on MarkLogic Server.
15/07/13 13:19:35 WARN util.KerberosName: Kerberos krb5 configuration not found, setting default realm to empty
15/07/13 13:23:06 INFO input.FileInputFormat: Total input paths to process : 2147329
15/07/13 13:24:08 INFO contentpump.LocalJobRunner: completed 0%
15/07/13 13:34:43 INFO contentpump.LocalJobRunner: completed 1%
15/07/13 13:43:42 INFO contentpump.LocalJobRunner: completed 2%
15/07/13 13:51:15 INFO contentpump.LocalJobRunner: completed 3%
И заканчивается нормально, загрузка данных в порядке.
Теперь мы используем одни и те же данные на другой машине, а сервер Prod (ML8 + CentOS7) мы получаем
15/07/14 17:02:21 INFO contentpump.ContentPump: Hadoop library version: 2.6.0
15/07/14 17:02:21 INFO contentpump.LocalJobRunner: Content type is set to MIXED. The format of the inserted documents will be determined by the MIME type specification configured on MarkLogic Server.
Помимо разных ОС у нас также есть более свежая версия mlcp на de prod server 2.6.0 вместо 2.0.0. Если мы используем ту же команду для импорта каталога, содержащего только 2000 файлов, она работает на prod...
Задание застревает при подсчете количества файлов для обработки...
В чем может быть проблема?
НАЧАТЬ РЕДАКТИРОВАТЬ мы поместили mlcp в DEBUG и протестировали с небольшим samle.zip
результат:
[ashraf@77-72-150-125 ~]$ mlcp.sh import -host localhost -port 8140 -username ashraf -password duurz44m -input_file_path /home/ashraf/sample2.zip -input_compressed true -mode local -output_uri_replace "\".*,''\"" -output_uri_prefix incoming/linkedin/ -output_collections incoming,incoming/linkedin -output_permissions slush-dikw-node-role,read
15/07/16 16:36:31 DEBUG contentpump.ContentPump: Command: IMPORT
15/07/16 16:36:31 DEBUG contentpump.ContentPump: Arguments: -host localhost -port 8140 -username ashraf -password duurz44m -input_file_path /home/ashraf/sample2.zip -input_compressed true -mode local -output_uri_replace ".*,''" -output_uri_prefix incoming/linkedin/ -output_collections incoming,incoming/linkedin -output_permissions slush-dikw-node-role,read
15/07/16 16:36:31 INFO contentpump.ContentPump: Hadoop library version: 2.6.0
15/07/16 16:36:31 DEBUG contentpump.ContentPump: Running in: localmode
15/07/16 16:36:31 INFO contentpump.LocalJobRunner: Content type is set to MIXED. The format of the inserted documents will be determined by the MIME type specification configured on MarkLogic Server.
15/07/16 16:36:32 DEBUG contentpump.LocalJobRunner: Thread pool size: 4
15/07/16 16:36:32 INFO input.FileInputFormat: Total input paths to process : 1
15/07/16 16:36:33 DEBUG contentpump.LocalJobRunner: Thread Count for Split#0 : 4
15/07/16 16:36:33 DEBUG contentpump.CompressedDocumentReader: Starting file:/home/ashraf/sample2.zip
15/07/16 16:36:33 DEBUG contentpump.MultithreadedMapper: Running with 4 threads
15/07/16 16:36:33 DEBUG mapreduce.ContentWriter: Connect to localhost
15/07/16 16:36:33 DEBUG mapreduce.ContentWriter: Connect to localhost
15/07/16 16:36:33 DEBUG mapreduce.ContentWriter: Connect to localhost
15/07/16 16:36:33 DEBUG mapreduce.ContentWriter: Connect to localhost
15/07/16 16:36:34 INFO contentpump.LocalJobRunner: completed 0%
15/07/16 16:36:39 INFO contentpump.LocalJobRunner: completed 100%
2015-07-16 16:39:11.483 WARNING [19] (AbstractRequestController.runRequest): Error parsing HTTP headers: Premature EOF, partial header line read: ''
15/07/16 16:39:12 DEBUG contentpump.CompressedDocumentReader: Closing file:/home/ashraf/sample2.zip
15/07/16 16:39:12 INFO contentpump.LocalJobRunner: com.marklogic.contentpump.ContentPumpStats:
15/07/16 16:39:12 INFO contentpump.LocalJobRunner: ATTEMPTED_INPUT_RECORD_COUNT: 1993
15/07/16 16:39:12 INFO contentpump.LocalJobRunner: SKIPPED_INPUT_RECORD_COUNT: 0
15/07/16 16:39:12 INFO contentpump.LocalJobRunner: Total execution time: 160 sec
Только первый файл json находится в базе данных, остальное сбрасывается / теряется?
Есть ли проблема с символом новой строки в файлах JSON?
(AbstractRequestController.runRequest): Error parsing HTTP headers: Premature EOF, partial header line read: ''
любые намеки будут великолепны.
Хьюго
1 ответ
Я не могу точно сказать, что происходит. Я думаю, что поддержка будет заинтересована в этом случае. Можете ли вы отправить им или мне письмо с более подробной информацией (и, возможно, файлы).
В качестве обходного пути: не должно быть трудным использовать ту же версию MLCP на сервере prod, что и на dev, просто поместите ее рядом с другой (или где угодно) и убедитесь, что вы ссылаетесь на нее (подсказка: в Рокси у вас есть mlcp-home
установка).
Вы также можете рассмотреть возможность архивирования документов JSON и использовать -input_compressed
вариант.
НТН!