2016-04-06 5 views
0

Ich möchte ein bestimmtes Forum in Echtzeit crawlen und die Daten in HDFS ablegen, wenn nicht Hbase.storm crawler - Technologie-Stack und Apache Nutch

Ich hörte, Apache Nutch könnte den Zweck lösen, aber leider ist der Technologie-Stack ziemlich alt. Ich möchte den Hadoop nicht von 2.6 auf frühere Version und Elasticsearch auf 1.7/1.4 herabstufen, daher verlagerte ich meinen Fokus auf Storm-Crawler.

Da ich Hadoop 2.6, Elasticsearch 2.0 und Hbase 1.1.3 verwende, kann mir jemand sagen, ob Storm-Crawler 0.9 zusammen mit ihnen verwendet werden kann?

+0

Warum nicht das Tag 'stormcrawler' zu dieser Frage hinzufügen? –

+0

Hier ist kein Tag von 'stormcrawler'. Ich denke, es hat noch nicht 1500 Reputationen. – Gagan

Antwort

2

Da Sie eine bestimmte Anforderung haben, das Forum in einer fast Echtzeit-Mode zu crawlen, ist Nutch nicht die beste Technologie, um dies zu erreichen. Nutch arbeitet an Batches, was bedeutet, dass Links erzeugt, dann geholt und dann analysiert werden, aber dies würde nicht immer nur einen Link passieren. Storm Crawler hingegen basiert auf Apache Storm, einem kostenlosen und Open-Source-System, das Echtzeit berechnet.

Storm Crawler unterstützt derzeit die Indizierung in Elasticsearch 1.7.2 (Unterstützung für Version 2, ist auf dem Weg https://github.com/DigitalPebble/storm-crawler/tree/es2/external/elasticsearch), derzeit gibt es keine Unterstützung für die Indizierung in HBase und Sie könnten Ihre Hadoop-Installation nicht verwenden Es basiert auf Apache Storm. Nichtsdestotrotz ist Storm Crawler "Eine Sammlung von Ressourcen zum Aufbau von skalierbaren Webcrawlern mit geringer Latenzzeit", sodass Sie Ihre eigene Indexer-Schraube in HBase schreiben können, die nicht zu schwer sein sollte, und den Rest der bereitgestellten Ressourcen einschließlich der Echtzeit-Crawlersuche wiederverwenden das brauchst du.

+0

Ja ich meinte fast Echtzeit wie in Latenz sollte nicht zu groß sein. Es kann auch chargenpflichtig sein. Irgendeine Idee wann kann die Unterstützung für Version 2.x zur Verfügung gestellt werden? Kannst du mir ein Beispiel dafür geben, wie man benutzerdefinierte Indexerbolzen schreibt? – Gagan

+1

Momentan wird keine ETA auf 2.x ES unterstützt, sollte aber nicht zu lang sein. Was das Schreiben eines benutzerdefinierten Indexerbolzens angeht, ist das beste/einfachere Beispiel https://github.com/DigitalPebble/storm-crawler/blob/master/core/src/main/java/com/digitalpebble/storm/crawler/indexing/ StdOutIndexer.java, die nur Informationen in stdout druckt. Sie können auch die anderen Indexer überprüfen, die im externen Ordner (aws, solr, sql) zur Verfügung gestellt werden. In der Regel haben externe Ressourcen einige Extras, aber mindestens eine Indexer-Schraube. –

+0

Danke das hilft. Kann es auch im verteilten Modus anstatt auf einem eigenständigen System verwendet werden? – Gagan

0

@ jorge-luis hat bereits geantwortet über ElasticSearch 2. Es gibt eine pull request for it und wir sind dabei, es zu testen. Was Hadoop betrifft, basiert StormCrawler nicht darauf, sondern auf Apache Storm - daher der Name. Schließlich gibt es zur Zeit keine Ressourcen für HBase, aber dies könnte hinzugefügt werden. Wofür wollten Sie es verwenden? Ich gehe davon aus, dass die Dokumente mit ES indiziert werden. Würdest du die Infos über URLs da drin lassen wollen (wie die crawldb in Nutch)? Wenn dies der Fall ist, können Sie ES auch zum Speichern des Status verwenden. Werfen Sie einen Blick auf die Erläuterung ES module in StormCrawler.

+0

HBase/HDFS ist erforderlich, da ich NoSQL-Speicher/HDFS in der Architektur für Predictive möchte Modellierung zu einem späteren Zeitpunkt. Ich wäre froh, wenn es einen anderen Ausweg gäbe. Kannst du mich auch wissen lassen, wann ihr die Tests der "ES2 Integration" abschließen könnt? Kann es bis Ende April möglich sein? – Gagan

+0

Schreiben einer Schraube zum Schreiben auf HBase wäre nicht sehr schwierig. Alternativ arbeite ich an einer Schraube, die Inhalt in HDFS als WARC-Dateien schreibt, was ein Standard für die Webarchivierung ist und offener als Hbase mit einem Schema wäre. –

+0

Wie für ES - fühlen Sie sich frei, die Branche zu testen und Verbesserungen beizutragen, das ist der beste Weg, Dinge zu verwirklichen. Folgen Sie einfach dem Projekt auf Twitter, um über wichtige Verbesserungen informiert zu werden. –