Apache Nutch

Nutch
logo
Autor Apache Software Foundation
Pierwsze wydanie 2002
Aktualna wersja stabilna v1.16 (w linii „1.x”), v2.4 (w linii „2.x”) (19 października 2019; ponad 4 lata temu)[1]
Język programowania Java
System operacyjny Wieloplatformowy
Rodzaj biblioteka programistyczna (przeszukiwanie stron internetowych)
Licencja Apache License
Strona internetowa

Apache Nutch – otwartoźródłowy, rozszerzalny i skalowalny robot internetowy (program komputerowy do przeszukiwania i analizy stron internetowych) rozwijany pod opieką Fundacji Apache[2].

Opis i cechy

Cechy systemu Nutch (wg opracowania Yadav i Goyala[3]):

  • Duża ilość funkcji i możliwość elastycznego konfigurowania działania systemu[4][5],
  • Możliwość rozszerzania funkcji systemu (z użyciem systemu wtyczek)[4][6],
  • Łatwa integracja z innymi elementami ekosystemu Apache, takimi jak Tika i Solr czy z platformą Hadoop,
  • Duża skalowalność i odporność na uszkodzenia,
  • Możliwość przechowywania danych w rozproszonej bazie danych typu klucz-wartość, np. HBase (od wersji 2.0),
  • Uwzględnianie zasad mechanizmu Robot Exclusion Protocol (zapisanych na stronach webowych w plikach robots.txt)[2],
  • Dobre wsparcie społeczności open source.

Budowa

Nutch jest napisany całkowicie w języku Java[3], lecz jego dane zapisywane są w formatach niezależnych od języka programowania. Budowa systemu jest modularna, co pozwala na modyfikację działania i połączenie w innymi narzędziami i bibliotekami. W ramach projektu Nutch stworzono interfejsy API, które pozwalają m.in. na tworzenie wtyczek (ang. plugins) do systemu. Jednym z dostępnych interfejsów API jest API REST-owe, które umożliwia interaktywną kontrolę działania systemu, bez konieczności używania interfejsu graficznego czy komend[7].

W wielu swoich zadaniach pomocniczych, Nutch bazuje na istniejącym oprogramowaniu[6]:

  • Hadoop: skalowalność, wykonywanie zadań, serializacja danych (w linii 1.x)
  • Tika: rozpoznawanie formatów plików
  • Solr, Elasticsearch: wyszukiwanie w zapisanych danych
  • Gora, HBase, Cassandra: gromadzenie danych (w linii 2.x)
  • crawler-commons[8]: obsługa plików robots.txt

Historia projektu

Projekt Nutch został zapoczątkowany w roku 2002 w ramach współpracy Douga Cuttinga (twórcy m.in. platformy Lucene) oraz Mike'a Cafarelli. Na przełomie 2004 i 2005 roku w projekcie Nutch wdrożono funkcję MapReduce oraz wprowadzono rozproszony system plików (który później został wyodrębniony wraz z innymi elementami jako odrębny projekt Hadoop), co pozwoliło na przetwarzanie i indeksowanie danych na wielu urządzeniach. W styczniu 2005 r. Nutch dołączył projektów Apache Software Foundation (ASF) – początkowo objęty procedurą tzw. inkubacji, by zostać podprojektem Lucene w czerwcu tego samego roku[6]. W 2010 r. Nutch został niezależnym projektem ASF na najwyższym poziomie[9].

W lutym 2014 r. projekt Common Crawl[10] przyjął Nutcha jako swoje otwarte narzędzie do indeksowania sieci na dużą skalę[11].

Przypisy

  1. Apache Nutch – Highly extensible, highly scalable Web crawler [online], nutch.apache.org [dostęp 2020-05-02] .
  2. a b Mike Cafarella, Doug Cutting. Building Nutch: Open source search. „ACM Queue”. 2 (2), s. 54-61, 2004. (ang.). 
  3. a b Monika Yadav, Neha Goyal. Comparison of Open Source Crawlers-A Review. „International Journal of Scientific and Engineering Research”. 2229 (5518), s. 1544-1551, 2015. (ang.). 
  4. a b NutchTutorial - NUTCH - Apache Software Foundation [online], cwiki.apache.org [dostęp 2020-05-03] .
  5. L. A. Lopez, R. Duerr and S. J. S. Khalsa, "Optimizing apache nutch for domain specific crawling at large scale," 2015 IEEE International Conference on Big Data (Big Data), Santa Clara, CA, 2015, pp. 1967-1971.
  6. a b c Sebastian Nagel: Web crawling with Apache Nutch. 2014. (ang.).
  7. NutchRESTAPI - NUTCH - Apache Software Foundation [online], cwiki.apache.org [dostęp 2020-05-05] .
  8. GITHUB, Repozytorium projektu: crawler-commons, crawler-commons, 3 maja 2020 [dostęp 2020-05-04] .
  9. Nutch.apache.org, Apache Nutch™ - News [online], nutch.apache.org [dostęp 2020-05-01] .
  10. Frequently Asked Questions – Common Crawl [online] [dostęp 2020-05-04]  (ang.).
  11. Common Crawl’s Move to Nutch – Common Crawl [online] [dostęp 2020-05-01]  (ang.).