ApacheCon 2009: Lucene, Hadoop und mehr

Auf der diesjährigen ApacheCon feierten Entwickler und Anwender das zehnjährige Bestehen der Apache Software Foundation. Geprägt war die Konferenz von den aktuellen Top-Themen Hadoop und Lucene.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 16 Min.
Von
Inhaltsverzeichnis

Die diesjährige Konferenz war die erste in Tracks aufgeteilte ApacheCon. Das Konzept hat sich bewährt: Besuchern, die sich hauptsächlich für ein bestimmtes Thema interessierten, wurde so die Auswahl der Vorträge vereinfacht. In den Tracks fanden sowohl Präsentationen für Anfänger als auch technisch tiefgreifendere Vorträge ihren Platz.

Geprägt war die Konferenz von den aktuellen Top-Themen Hadoop und Lucene, was sich nicht nur im Vortragsprogramm, sondern auch in den Besucherzahlen der entsprechenden Meetups ausdrückte. Daneben nahm natürlich auch der Webserver Apache Httpd breiten Raum ein.

Torte zum zehnjährigen Bestehen der Apache Software Foundation

(Bild: Vonguard auf Flickr; Lizenz: CC Attribution-Share Alike)

Neben unzähligen spannenden Vorträgen wurde die Konferenz aber vor allem von den Apache-Entwicklern zum Austausch, zur Diskussion und zur Weiterentwicklung ihrer Projekte genutzt. In der Lucene-Community hatte sich schon bald das geflügelte Wort "heavy committing" etabliert für Community-Mitglieder, die während der Konferenz intensiv auf das nächste Lucene-Release hinarbeiten. So wurde der Hackathon quasi in die Pausen, Vorträge und Abende hinein verlängert.

Die ersten beiden Konferenztage waren nämlich reserviert für Hackathon, Barcamp, Meetups und Trainings. Die Trainings bieten Teilnehmern intensive Sessions, die von den jeweiligen Kern-Entwickler selbst durchgeführt werden: Brett Porter gab in zwei Tagen einen Überblick über die Arbeit mit Maven. Erik Hatcher, Committer bei Lucene und Solr sowie Autor des Buchs "Lucene in Action", erklärte den Teilnehmern des "Apache Solr Day" die Fähigkeiten und Prinzipien der quelloffenen Enterprise-Suchmaschine Solr. Das Lucene Bootcamp wurde von Grant Ingersoll vom Lucene Project Management Committee durchgeführt. Auch die Themen Hadoop, HTTPD, Tomcat und OSGI waren Gegenstand von Trainings.

Beim Hackathon

(Bild: Johan Oksarsson auf Flickr; Lizenz: CC Attribution-Share Alike)

Der Hackathon bietet Entwicklern und Nutzern die Möglichkeit, gemeinsam an "ihrem" Projekt zu arbeiten und vor Ort offene Probleme zu diskutieren. Ergänzend dazu waren die Teilnehmer eingeladen, beim Apache Barcamp mitzuwirken.

Die Abende der ersten beiden Tage waren geprägt von Meetups – besonders beliebt war das NoSQL Meetup am Montag Abend mit über 100 Teilnehmern. In zwei Tracks wurden hier unter anderem Cassandra, HBase, jackrabbit Jackrabbit und CouchDB vorgestellt.

Am Dienstag Abend sponsorte der Lucene-Spezialist Lucid Imagination das Lucene Meetup mit ebenfalls mehr als 100 Teilnehmern. Den Anfang machte Erik Hatcher, der auf Herausforderungen und Möglichkeiten für neue Nutzerinterfaces für Suchapplikationen einging. Anschließend stellte Uwe Schindler die neuen Möglichkeiten zur Verarbeitung von numerischen Rangequeries in Lucene vor. Mit diesem Feature ist es jetzt einfach, performante Umkreissuchen mit Lucene zu implementieren.

Den Abschluss bildete Stefan Groschupf, der mit Katta ein Projekt vorstellte, dessen Ziel es ist, Lucene in Projekten mit hohem Query-Aufkommen und umfangreichen Indizes einzusetzen. Katta bietet Möglichkeiten, einen Lucene-Index auf verschiedenen Hardwareknoten zu verteilen. Katta kümmert sich dabei einerseits um die Indexverteilung, um Failover und Load Balancing, aber auch auf der Client-Seite um das Zusammenführen und Reranking der verteilten Trefferlisten.

Mittwoch Morgen leitete das Open Plenary den von Vortragssessions geprägten Teil der Konferenz ein. Thematisch konzentrierte sich der Tag auf die Themen Hadoop, Tomcat, Content Technology, Tuscany/Synapse und Business. Highlight des Open Plenary war die Ankündigung von CollabNet, die renommierte Versionsverwaltung Subversion als Projekt bei der Apache Software Foundation forzuführen.

Beim Apache Pioneers' Panel, dem wegen des zehnjährigen Jubiläums eine Stunde am Vormittag gewidmet war, erzählten die Gründer der ASF einerseits Anekdoten aus der Gründungszeit der Foundation. Andererseits wurde der Grundsatz "Community over Code" herausgestrichen. Das Ziel von Apache-Projekten ist es nicht nur, stabilen, produktionsreifen Code zu entwickeln. Die Projekte haben auch das Ziel, möglichst stabile Communities aufzubauen, da nur so Nutzer bestmöglich unterstützt werden können.

Hier erfuhr man auch, wie die Apache Software Foundation im Innern funktioniert. Committer und Funktionsträger bei der ASF sind immer Einzelpersonen: Es ist nicht möglich, einen generellen Committer-Status für ein Unternehmen zu erhalten (oder gar zu kaufen); vielmehr muss sich jeder Committer diesen Status persönlich durch wertvolle Beiträge erarbeiten.

Der dritte Tag widmete sich in fünf parallelen Tracks den Themen Hadoop, Tomcat, Content Technology @ Apache, Apache Tuscany und Apache Synapse sowie Business.

Der Hadoop-Track begann mit Vorträgen von Owen O'Malley von Yahoo! und Doug Cutting von Cloudera. Sie stellten die aktuellen Entwicklungen innerhalb von Hadoop vor. Owen konzentrierte sich vor allem auf die Stärken von Hadoop, ging aber auch auf Szenarien ein, für die Hadoop ungeeignet ist. Schließlich gab Owen einen Überblick über die Hadoop-Entwicklung bei Yahoo!.

Doug Cutting ging auf aktuelle und zukünftige Entwicklungen von Hadoop ein. Momentan wichtigstes Ziel ist die Stabilisierung der API mit dem Ziel, die Aktualisierung auf neue Hadoop-Versionen zu vereinfachen. Mit Avro stellte Doug Cutting eine Bibliothek zur Serialisierung von Objekten ähnlich Google Protocol Buffers oder Apache Thrift vor. Avro unterstützt ein binäres Encoding von Objekten, was effizienter ist als Textformate. Zusätzlich unterstützt die Bibliothek Mechanismen, die die Interaktion zwischen verschiedenen Formatversionen vereinfacht. Im Gegensatz zu Protocol Buffers oder Thrift ist bei Avro keine Codegenerierung notwendig, was das Protocol flexibler gestaltet.

Nach der Mittagspause stellte Mark Thomas im Tomcat-Track die Neuerungen in Tomcat 7 vor. Die neue Tomcat-Version wird die Servlet-3.0-API unterstützen. Die API-Implementierung ist weit fortgeschritten – soweit die API-Definition selbst schon stabil ist. Zu den neuen Funktionen gehört unter anderem die asynchronene Requestverarbeitung. Diese erlaubt neue Kommunikationsformen in Webanwendungen etwa im AJAX-Umfeld. Der Tomcat Manager, über den neue Applikationen deployed werden können, wurde vor allem im Hinblick auf Sicherheit überarbeitet. Mit embedded Tomcat hat man eine Möglichkeit geschaffen, Tomcat sehr einfach in Java Code zu instanziieren und integriert mit der Applikation auszuliefern. Embedded Tomcat ist sehr leichtgewichtig und weist nur wenige Bibliotheksabhängigkeiten auf.

In der letzten Session den Hadoop-Tracks stellten Jonathan Gray und Michael Stack HBase vor, eine hochskalierbare spaltenorientierte Datenbank. Das Projekt stellt eine freie Implementierung von Google BigTable dar. Die Schnittstellen zum Datenaustausch mit HBase umfassen eine Java-API, Thrift-basierte Connectoren sowie eine REST-Schnittstelle. Für Aufgaben wie Monitoring und Administration kann auch ein mitgeliefertes Webinterface genutzt werden.

Im Gegensatz zu verschiedenen NoSQL-Datenbanken arbeitet HBase mit festen Schemata. Ziel beim Design eines Schemans sollte sein, die Anzahl der Reads zu maximieren sowie die Menge an Daten, die für die Verarbeitung einer Query gelesen werden müssen, zu minimieren. Üblicherweise kann dieses Ziel durch die Denormalisierung von Daten erreicht werden. Aktuell wird HBase zum Beispiel von Adobe, Meetup und Su.per im Produktionsbetrieb eingesetzt.

Den Abschluss des Tracks bildete ein Vortrag von Facebook zum Einsatz von Hive, einer Hadoop-Erweiterung, die es ermöglicht, Map Reduce Jobs mit einer SQL ähnlichen Sprache (HiveQL) zu formulieren. Innerhalb von Facebook wird Hive momentan hauptsächlich für die Analyse von Logfiles eingesetzt.

Aktuell stehen bei Facebook im Hadoop Hive Warehouse 5,5 Petabyte an Datenspeicher zur Verfügung, jeweils 12 Terabyte pro Node. Täglich werden dem System 4 Terabyte komprimierte Daten hinzugefügt. Hive macht die Interaktion mit dem Hadoop Cluster einfacher: Neu eingestellte Software-Entwickler sind nach einer Stunde Training in der Lage, erste Queries zu formulieren. Aber auch Analysten sind in der Lage, damit Reports zu erstellen und Ad-Hoc-Analysen durchzuführen. Auch Algorithmen zur Optimierung der Platzierung von Werbeanzeigen werden über Hive realisiert.

Der Abend des ersten Konferenztages blieb der Geburtstagsfeier der ASF vorbehalten: Ab 6 Uhr abends trafen sich Committer, Member und Nutzer verschiedener Apache Projekte zum "Big Feather Birthday Bash".

Auch der vierte Konferenztag beschäftigte sich in parallelen Tracks mit fünf Themen: Httpd.conf – Administrators and Users, Content Technology at Apache, Lucene, Apache Web Services und Community.

Im Lucene-Track stellten bekannte Lucene- Committer die beliebte Open-Source-Suchmaschine vor. Den Anfang machte Grant Ingersoll, der einen Überblick über das Lucene-Ökosystem gab. Das Lucene-Projekt umfasst mehr als nur den Suchindex: Solr vereinfacht das Deployment von Lucene-Indizes und erweitert die Suchmaschine um Features wie Facetting, um Nutzern die Navigation in Suchergebnissen zu erleichtern. Das bringt typische Eigenschaften von Unternehmens-Suchmaschinen für Lucene-Nutzer.

Mit Tika entsteht ein Framework, das das Parsen von verschiedenster Dokumentenformate wie PDF oder MS-Office über eine einheitliche Schnittstelle erlaubt.

Die Entwickler von Nutch wollen auf Basis von Lucene eine Suchmaschine entwickeln, mit der Nutzer einerseits öffentliche Webseiten aus dem WWW crawlen, indizieren und durchsuchen, aber auch Suchmaschinen für den eigenen Datenbestand aufsetzen können. Das Projekt kommt komplett mit Crawler, Parsern, Index und einfachem Suchfrontend. In den letzten Jahren ist es eher ruhig geworden um das Projekt – die größte Hürde beim Aufbau großer Suchmaschinen sind neben der Software die Hardwareanforderungen. Aktuell arbeiten die Nutch-Entwickler daran, die Software in einfach austauschbare und kombinierbare Module aufzuteilen, was die Arbeit mit Nutch sehr viel flexibler machen soll. Zum Parsing von Dokumenten wird momentan Tika integriert. Als Indexer soll sich zukünftig auch Solr einsetzen lassen.

Ein weiteres, sehr junges Lucene Projekt ist Apache Mahout, eine Bibliothek von Textmining- und Machine-Learning-Algorithmen, die auch mit großen Datenmengen arbeiten kann. Mahout unterstützt die Identifikation inhaltlich zusammengehörender Nachrichten, die Klassifikation von Material etwa zur Erkennung von Spam-Mails sowie den Aufbau von Recommender-Systemen ähnlich Amazons "Kunden, die dieses Produkt mochten, haben auch folgende Bücher gekauft".

Im zweiten Talk stellte Michael Busch die Neuerungen in Lucene 2.9 im Detail vor.

In der Donnerstags-Keynote "Standing Out in the Crowd" analysierte Kirrily Robert, warum in Open-Source-Communities vergleichsweise wenige weibliche Entwickler zu finden sind und welche Strategien dazu führen könnten, Open-Source-Projekte einfacher zugänglich für Außenstehende zu machen.

Im Anschluss stellte Chris Hostetter Solr im Detail vor und zeigt mit Hilfe des Admin-Web-GUI, wie einfach man indexierte Dokumente mit Solr-Boardmitteln alleine analysieren kann. Weiterhin gab er einen Überblick, welche Strategien bei der Auswahl von Feldern als Facetten helfen können. Mark Miller ging im Anschluss auf das Thema Performance Tuning bei Lucene und Solr ein. Er erklärte den Teilnehmern, welche Optionen in den Solr-Konfigurationsdateien starke Auswirkungen auf die Performance von Solr und Lucene haben.

Ross Gardler stellte im Community-Track das Thema "Open Source Entwicklung in Ausbildung und Lehre" vor. Obwohl auch an Universitäten Softwareprojekte durchgeführt werden und Forscher Software entwickeln, gibt es vergleichsweise wenig Austausch zwischen Forschungsinstituten und der Open-Source-Community. Außerdem spielen Prinzipien, auf denen die Entwicklung von Open-Source-Software basiert, derzeit eine untergeordnete Rolle in der Lehre.

Apache hat mit ComDev (Community Development) ein eigenes Projekt gegründet, dessen Ziel es ist, neue Community-Mitglieder anzuwerben und ihre Integration in existierende Communities zu vereinfachen. Ein Projekt, dass von comdev sehr interessiert aufgenommen wurde, läuft aktuell an der TU Berlin: Im aktuellen Semester wurde erstmals ein Kurs angeboten, dessen Ziel es ist, den teilnehmenden Studenten nicht nur die Arbeit mit Open-Source-Software nahe zu bringen, sondern ihre Arbeit auch in die entsprechenden Projekte zurückfließen zu lassen.

Der zweite Tag schloss mit der beliebten Lightning Talks Session, in der Entwickler und Nutzer von Apache-Projekten eingeladen sind, nicht ganz ernstgemeinte, nur wenige Minuten lange Vorträge zu halten.

Am fünften Tag standen in parallelen Tracks die Themen Lucene, httpd.conf, Geronimo & Apache Directory, Apache Felix – OSGi und Apache OFBiz auf dem Programm.

Der dem Apache-Webserver gewidmete Httpd-Track begann mit einem Panel mit den Entwicklern. Unter dem Titel "Welcome to the future" stellten sie die Neuerungen vor, die Nutzer von dem kommenden Release 2.4 erwarten können; darunter Verbesserungen an den Proxymodulen, das Modul mod-lua, das – wie der Name schon vermuten läßt – die Programmiersprache Lua unterstützt, sowie wein vebesserter Umgang mit Clients mit langsamer Internetverbindung.

Der parallel dazu laufende Lucene-Track konzentrierte sich am letzten Tag hauptsächlich auf Technologien, die Suchmaschinen noch effizienter machen und dem Nutzer einen größeren Mehrwert bieten können. Mit Apache Mahout ist vor wenigen Jahren ein Projekt im Lucene-Umfeld entstanden, dessen Ziel es ist, skalierbare Machine Learning Bibliotheken zur Verfügung zu stellen. Zu den bisher unterstützten Aufgabenstellungen gehört zum Beispiel die Identifikation von Gruppen (Clustern) sich ähnelnder Nachrichten. Klassifiationsalgorithmen, die zum Beispiel bei Spam-Filtern gebraucht werden, sind ebenfalls verfügbar. Die bisher umfangreichste Komponente stellt Recommender Algorithmen zur Verfügung, mit deren Hilfe zum Beispiel Web-Shop Betreiber ihren Kunden verwandte Produkte anzeigen können.

Im Anschluss stellte Jukka Zitting Tika vor, ein Projekt, das Parser für verschiedenste Dokumentenformate unter einer möglichst einheitlichen API integriert. Sowohl beim Web-Crawling als auch bei der Indexierung von Dokumenten im Intranet stößt man immer wieder auf das Problem, dass relevante Dokumente als Präsentation, PDF- oder MS-Word-Datei gespeichert sind. Um auch diese Dokumente durchsuchbar zu machen ist die Integration eines Dokumentenparsers notwendig, der den Inhalt der verschiedenen Dokumente extrahieren kann. Tika integriert Parser für verschiedene Formate in einem Projekt – so wird für PDF auf pdfbox zurück gegriffen, für HTML bislang auf Neko, mit dem neuen Release auf TagSoup. Für Microsoft Office-Formate greift Tika auf Apache POI zurück.

Für die Keynote am Freitag war Brian Behlendorf, Apache-Entwickler der ersten Stunde, zum Thema "How Open Source Developers can (still) Save the World" eingeladen. Ausgehend vom Erfolg des Open-Source-Modells bei "Basistechnologien" wie Betriebssystemen und Webservern erklärte er, dass inzwischen auch weniger offensichtliche Bereiche vom Einsatz freier Software profitieren. Ein Beispiel ist Scratch – ein Programm, mit dem Kinder spielerisch lernen können, was "Programmieren" bedeutet, und selbst erste Programme schreiben. Aber auch bei elektronischen Healthcare-Systemen oder in öffentlichen Institutionen wird freie Software zunehmend wichtiger.

Nach der Mittagspause erklärte Ted Dunning, wie sich Algorithmen aus der Welt der Recommender-Systeme nutzen lassen, um Suchmaschinen zu verbessern. So ist es beispielsweise für eine Videosuchmaschine sinnvoll, Queries, die ein Nutzer an das System gestellt hat, mit Videos zu kombinieren, die er gesehen hat. Daraus lassen sich dann, eine genügend große Datenmenge vorausgesetzt, Rückschlüsse auf den Inhalt der Videos ziehen. Vor allem für Videos ohne Beschreibung kann dies zu einer höheren Trefferrate führen. Wird ein solches System eingesetzt, ist es letztlich möglich, nicht nur direkte Treffer für eine Query zurückzuliefern, sondern auch ähnliche, verwandte Videos anzuzeigen. Ted schloss seinen Vortrag mit einer offenen Diskussion mit dem Publikum, in der die Zuhörer eingeladen waren, ihre eigenen Aufgabenstellungen vorzustellen und zur Diskussion zu stellen.

Den Abschluss machte am Freitag Jason Rutherglen, der das Realtime Search Feature vorstellte. Dabei handelt es sich um eine Erweiterung für Lucene, mit der es möglich ist, indexierte Dokumente schneller als bisher zur Suche zur Verfügung zu stellen.

Die Konferenz endete mit dem Abschlussplenum und einer Lotterie. Und die Teilnehmer waren zufrieden: Sommerliches Wetter, spannende Vorträge, interessante Diskussionen. Kleine organisatorische Pannen konnten den guten Eindruck nicht ankratzen. (odi)