nutch я считываю папку содержимого из сегментов.Есть разница в отчете о статистике

#nutch

#nutch

Вопрос:

Я предоставил nutch входные URL-адреса для обхода веб-сайтов, то есть 1081220 URL-адресов.Я провел один раунд обхода.затем я считываю данные из папки содержимого из каталога сегментов.Считайте данные с помощью spark и записывайте данные в json, хранящиеся в s3.Затем я прочитал файл json, который хранится в s3, когда я прочитал номер URL-адреса 796737, в котором я нашел папку содержимого. Когда я вижу статус выборки из пользовательского интерфейса yarn, значение

Карта имен Уменьшить Общее количество доступов_определено 327 0 327 байтов_загружено 55,505,674,572 0 55,505,674,572 исключение 85,774 0 85,774 пропало 803 0 803 hitByThrougputThreshold 119,988 0 119,988 перемещено 129,703 0 129,703 не найдено 25,511 0 25,511 robots_denied 35,750 0 35,750 robots_denied_maxcrawldelay 2,574 0 2,574 успех 641,302 0 641,302 temp_moved 25,732 0 25,732


статистика обхода: статус 1 (db_unfetched): 15313970 статус 2 (db_fetched): 619429 статус 3 (db_gone): 64965 статус 4 (db_redir_temp): 25732 статус 5 (db_redir_perm): 129703 статус 7 (db_duplicate): 21873


Могу ли я узнать, почему различия.какой статистике я должен следовать, есть разница во всех отчетах о статистике, которые являются статистикой папки содержимого, статистикой статуса выборки, статистикой обхода.Я не понимаю.

Ответ №1:

Могут быть различия между счетчиками выборки и результирующими значениями статуса обхода по нескольким причинам:

  1. конечно, CrawlDb содержит элементы из всех циклов и даже URL-адреса, введенные или найденные в виде внешних ссылок, но еще не извлеченные
  2. некоторые счетчики выборки не имеют соответствия 1: 1 статусу БД: например, «gone», «notfound» и «robots_denied» все приводят к «db_gone»
  3. другие статусы БД устанавливаются другими компонентами Nutch, например. «db_duplicate» заданием дедупликации
  4. в случае, если Fetcher следует перенаправлениям: Fetcher по умолчанию не дедуплицирует перенаправления, поэтому, если несколько перенаправлений указывают на один и тот же URL, он извлекается несколько раз. Это приводит к более высокому значению в счетчике выборки «успех» по сравнению с результирующим количеством элементов со статусом «db_fetched».

Комментарии:

1. Я установил http.redirect.max= 0, а как насчет значения папки содержимого, я прочитал значение папки содержимого с помощью spark, взяв столбцы url, тип содержимого, содержимое. Могу ли я узнать, почему существует разница в статистике между статистикой содержимого и статистикой обхода.

2. когда я читаю количество URL-адресов в папке содержимого 796737, почему есть разница в crawldb

3. Основное различие связано с тем фактом, что CrawlDb включает все внешние ссылки, найденные на выбранных страницах (15 миллионов элементов). Вложенный каталог содержимого в сегменте включает успешно извлеченные страницы, а также перенаправления и 404-е, поскольку они также содержат содержимое (HTML-страница с сообщением о перенаправлении или ошибке).

4. Как я могу фильтровать записи при чтении данных из spark. Мне нужны только те записи, которые были извлечены.

5. (a) соедините объекты содержимого в «поддиректоре содержимого» с объектами CrawlDatum в «crawl_fetch». Последний будет включать статус выборки. (b) если речь идет только о простом тексте: папка «parse_text» содержит извлеченный текст только успешных выборок (c) альтернативно: добавьте статус выборки в метаданные содержимого, например, установите store.http.headers == true и посмотрите в строку состояния заголовка HTTP-ответа