Doug Cutting über Open Source, Apache, Lucene, Nutch und Hadoop

Hadoop-Gründer Doug Cutting: Die Herausforderung ist es, dem Hype gerecht zu werden

Einer der wohl einflussreichsten Männer des aktuellen Java-Universums ist Doug Cutting, Chef-Architekt bei Cloudera und Begründer der Open-Source-Projekte Lucene, Nutch und Hadoop. Wir hatten die Gelegenheit, uns mit ihm über die Hintergründe seiner Technologie-Entwicklungen zu unterhalten, die der Java-Community neue Wege eröffnet haben und mit verantwortlich dafür waren, den Hype um Big Data loszutreten. Dougs Hauptanliegen ist denn auch die Frage: Wie können wir diesem Hype gerecht werden?

JAXenter: Wie bist du zur Software-Entwicklung und besonders zu Open Source gekommen?

Doug Cutting: In den frühen achtziger Jahren auf dem College an der Stanford University wurde mir klar, dass ich in die Softwareindustrie gehen wollte. Ich fing an, entsprechende Kurse zu belegen und war sehr zufrieden damit. Von da an wollte ich irgendetwas in dem Bereich machen. Ich habe ein paar Ferienjobs gemacht, in denen ich mit Leuten von Xerox PARC gearbeitet habe, was richtig Spaß gemacht hat. Gleich nach dem Abschluss bin ich für anderthalb Jahre nach Edinburgh gegangen und habe dort an einem wissenschaftlichen Projekt zum Thema Spracherkennung gearbeitet. Dann bin ich zurückgekommen, habe wieder bei PARC gearbeitet, fünf Jahre dort geforscht. Und dann habe ich mich in Richtung Suchmaschinen orientiert.

Programmieren hat mir von Anfang an Spaß gemacht, aber auch schon immer der beruflichen Karriere gedient. Während der Collegezeit hatten sich einige Schulden angehäuft, und ich wollte keinen Abschluss machen, ohne Aussicht auf einen Job zu haben, mit dem ich sie würde abbezahlen können. Während der Internetjahre habe ich bei bei Xerox, Apple, Excite gearbeitet, hauptsächlich an Software, die nicht Open Source war. Es gab ein paar Sachen, die am Ende freigegeben wurden, aber nicht viele. Um 2000, hatte ich ein Programm geschrieben, das Lucene hieß. Ursprünglich dachte ich, ich würde vielleicht eine Firma daraus machen. Aber ich merkte, dass ich nicht den Mut dazu hatte. Also habe ich es Open Source zur Verfügung gestellt, und das hat richtig gut funktioniert, Spaß gemacht und war obendrein eine sehr lohnende Arbeit.

Interessant – seit etwa 2000 arbeite ich fast ausschließlich an Open-Source-Software, mit nur Ausnahmen hier und da. Aber ich habe auch jeden Monat etwas damit verdient. Fünf Jahre lang war ich sogar als unabhängiger Berater tätig und habe Leuten geholfen, Lucene zu benutzen, in der Zeit also für gar keine bestimmte Firma gearbeitet.

JAXenter: Du siehst dich also als eine Art Problemlöser oder Troubleshooter, der sich gleichzeitig in Open-Source-Projekte hineinkniet?

Doug Cutting: Ich sehe mich als Impulsgeber. Was Lucene angeht, dachte ich: Java ist eine neue Plattform, und ich hatte lange an Suchmaschinen gearbeitet. Also hielt ich eine Textsuchmaschine in Java für eine sinnvolle Sache.

JAXenter: Warum hat dich an Java gereizt?

Doug Cutting: Die Kombination aus relativ guter Performance einerseits und den Features und der Verlässlichkeit höherer Programmierung andererseits. Das System ist stabil. Und dann kommt noch die Fähigkeit dazu, Sachen problemlos zwischen verschiedenen Plattformen, diversen UNIX-Arten und Windows und Mac hin- und herzubewegen. Das ist ein echter Sweetspot, zum einen sicherlich für Ingenieure, die Dinge schreiben können, die – nun ja – ziemlich gut laufen. Aber zum anderen muss man sich nicht endlos mit irgendwelchen nervigen Portierungs-Details herumschlagen, z. B. mit diesen seltsamen Memory Errors beim Debuggen, die es in C- und C++-Programmen gibt. Das schien sehr verheißungsvoll. Einige haben zwar die Lucene- und Hadoop-Projekte dafür kritisiert, dass sie nicht in C++ sind und sich entsprechende Performancevorteile nicht zunutze machen. Aber wir wären sehr viel langsamer vorangekommen, wenn wir damit gearbeitet hätten, weil es beim Debuggen in diesen Sprachen einige Schwerfälligkeiten gibt.

[ header = Seite 2: War es die richtige Entscheidung, bei Java zu bleiben? ]

JAXenter: Wenn du zurückschaust – war es die richtige Entscheidung, bei Java zu bleiben?

Doug Cutting: Für mich war es eine großartige Entscheidung. Das ist ohnehin Geschichte, wir können daran nichts ändern. Ein anderer hätte es anders gemacht und wäre auch gut damit gefahren. Aber ich finde, diese Projekte können sich sehen lassen. Und sie sprechen für sich, denn es sind effektive Tools geworden.

JAXenter: Absolut richtig. Du hast Lucene schon angesprochen – wie ist Nutch entstanden?

Doug Cutting: Das war während meiner freien Berater-Tätigkeit im Lucene-Umfeld. Jemand kam auf mich zu und sagte: „Weißt du, es wäre echt nett wenn es eine Volltext-Suchmaschine geben würde, eine Crawler-basierte Web-Suchmaschine, die Open Source ist. Wärst du daran interessiert, so ein Projekt zu starten?“ Und ich sagte: „Na klar, liebend gern.“ Ich hatte mehrere Jahre bei Excite an Crawler-basierten Engines gearbeitet und viel mit Closed-Source-Engines gemacht. Ich war in dem etwas naiven Glauben – ich glaube, ich war mir meiner Naivität damals auch bewusst –, dass so ziemlich jede Software irgendwann zum Wirtschaftsgut wird, und dass es immer eine Open-Source-Implementierung davon gibt. Und ich fand, dass Web-Suchmaschinen keine Ausnahme sein sollten. Ich wurde eines Besseren belehrt: Die besten Web-Suchmaschinen der Gegenwart sind die von Google und Microsoft, weltweit gibt es noch ein paar andere – aber die sind nicht Open Source. Und die Menge an Arbeit, die es erfordert, um so eine Suchmaschine zu unterhalten… Es gibt noch immer keine Open-Source-Engine, die wirklich Weltklasse ist, aber zu jener Zeit schien es eine gute Idee zu sein.

Also habe ich mich in die Arbeit gestürzt, ein paar Mitstreiter gefunden, und wir haben getan, was wir konnten. Ich wusste, wie verteilte Verarbeitung bei Excite funktionierte, und das war ein ziemlich unausgereifter Prozess: Man hatte eine Reihe von Maschinen zur Verfügung, verwaltete manuell Prozesse und kopierte Dateien über verschiedene Stadien hinweg. Wir hatten etwas, das theoretisch beliebig und auf vielen Maschinen skalierbar war. Aber der Betrieb war mühsam, denn er umfasste viel Handarbeit.

Dann las ich, wie Google das alles anging und welche manuellen Schritte sie automatisiert hatten. Das gab mir ein Grundgerüst. Es waren so ziemlich die gleichen Algorithmen und Datenstrukturen, die auch von MapReduce direkt unterstützt wurden. Das war offensichtlich eine Verbesserung: der Schritt hin zur Automatisierung und der Versuch, diese Nutch hinzuzufügen. Schon vorher war Nutch funktionierendes System gewesen, ein Open-Source-Projekt, das aber noch viel besser wurde, nachdem wir das Google-Paper gelesen hatten.

JAXenter: Dir ist also bei der Lektüre ein Licht aufgegangen?

Doug Cutting: Und ob. Wir haben gesehen, dass es eine bessere Lösung war. Es hat, keine Ahnung, vielleicht sechs Monate gedauert, um so weit zu kommen, dass wir MapReduce demonstrieren konnten und dass es viel besser lief als der Crawler und der Index, bevor wir auf die MapReduce-Implementierung stießen. Das war um 2004 herum, als sich in der Sache viel bewegte. Und dann kam Yahoo! mit seinem eigenen Framework für verteiltes Rechnen, das sie als Grundlage für deren Websuche verwendeten. Das hatte seine besten Tage hinter sich war und befand sich auf ziemlich dünnem Eis. Auch Yahoo! hatte die Papers von Google gelesen und dachte, das wäre eine gute Strategie, die aus ihrer Sicht in der Nutch-Implementierung am besten eingehalten wurde. Das Ganze als Open-Source-Projekt aufzuziehen hielten sie außerdem für eine gute Idee. Deshalb wollten sie mit uns gemeinsame Sache machen.

Aus rechtlichen Gründen wollten sie das allerdings im Umfeld eines Open-Source-Projekts machen, sondern in einem separaten Projekt, das sich verteiltem Rechnen widmete. Der Auslöser für die Abkapselung Hadoops von Nutch waren also Yahoo!s Pläne. Das war auch notwendig und gut so, denn die allgemeine Plattform für verteiltes Rechnen erfüllt natürlich viel allgemeinere Ansprüche als Crawler. Und Yahoo! hat im Januar 2006 den Anstoß dazu gegeben.

JAXenter: Du wirst das wahrscheinlich oft gefragt: Hättest du damals je gedacht, dass Hadoop zu dem werden würde, was es heute ist, dass es jemals so groß werden würde?

Doug Cutting: Nein, nicht wirklich. Mir war sehr wohl bewusst, dass ich etwas in die Wege geleitet hatte, was nicht nur in Sachen Websuche nützlich war. Ich wusste auch, dass es für dieses allgemeine Projekt eine Anwendung finden würde. Während meiner gesamten beruflichen Laufbahn war ich nie ein großer Fan von relationalen Datenbanken gewesen. Ich hatte damit herumgespielt und sie für meine Textsuche und Weblinks immer als unzureichend empfunden. Aber ich war nie auf eine geeignete Lösung gekommen. Auch mit Unternehmenssoftware hatte das Projekt eigentlich nichts am Hut; ich hatte – bei Webfirmen und Suchprojekten und auch bei Apple – immer mit Desktop-Betriebssystemen gearbeitet, und der Gedanke war mir nie gekommen. Ich hätte damals nicht gedacht, dass es einen derart großen Einfluss auf viele Industriezweige haben würde, es freut mich also umso mehr [lacht].

[ header = Seite 3: Wo liegen die Grenzen der Datenverarbeitung? ]

JAXenter: Das glaube ich. Was meinst du: Sind wir in Sachen Datenspeicherung bzw. –verarbeitung bereits an den Grenzen angelangt? Oder haben wir gerade erst an der Oberfläche gekratzt?

Doug Cutting: Ich denke, wir stehen noch am Anfang der Einsatz- und Umsetzungsmöglichkeiten. Langfristig steigt die Erschwinglichkeit von Hardware zur Datenspeicherung und –verarbeitung exponentiell an; langfristig steigt auch der Bedarf an erschwinglicher Hardware von Seiten der Industrie – in vielen, in allen Industriezweigen –, da immer mehr Daten gespeichert und verarbeitet werden. Es scheint einen Zusammenhang zwischen diesen beiden Trends zu geben, deren Ende noch gar nicht abzusehen ist. Vielleicht werden sie sich etwas verlangsamen, aber das massive Wachstum wird sich fortsetzen.

Der Ansatz in Sachen Datenverarbeitung, den wir mit Hadoop verfolgen, geht sehr gut auf diese Trends ein. Wenn man versuchen möchte, massive Mengen an Daten zu speichern, braucht man die Voraussetzungen, um von Grund auf so linear wie möglich zu skalieren und auch die Hardware so ökonomisch wie möglich einsetzen. Die klassischen relationalen Tugenden sind dafür ungeeignet – sie sind ein wenig überholt, da sie aus einem anderen Bereich mit anderen Anforderungen kommen.

Die andere Sache, die sehr spannend ist, ist das, was Google zurzeit macht. Sie haben gerade ein Spanner-Paper über ihr F1-System herausgebracht. Die sind schon einen Schritt voraus, dem Rest der Welt voraus. Sie gewähren uns tiefe Einblick in das, was möglich ist, und indem sie diese Papers schreiben, geben sie uns im Prinzip einen Fahrplan vor, dem wir folgen können [lacht]. Momentan sieht es so aus, als könnten wir alles haben: Wir können transaktionsbasierte Datenbanksysteme haben, die sehr weit skalieren, sogar auf globaler Ebene. Diese können mehrere Datenzentren umspannen, Petabytes in ihren Tabellen erfassen und trotzdem interaktive Queries bedienen. Wir sind im Open-Source-Ökosystem noch nicht ganz an diesem Punkt angekommen, aber ich denke, es ist klar, dass das auch noch passieren wird.

Was die Features angeht, sind wir auf einem guten Weg, was bedeutet: noch mehr Anwender und mehr Anwendungsfälle. Es gibt also bereits wachsende Industriezweige, bessere technologische Möglichkeiten und eine zusehends besser werdende Hardware-Ökonomie. Die Industrie wird heranreifen und die Technologie vermehrt einsetzen. Auch auf der Seite der Technologie wird es Fortschritte geben, die der Industrie wiederum mehr Möglichkeiten an die Hand gibt. Ich glaube also überhaupt nicht, dass hier Schluss ist.

JAXenter: Einige Unternehmen zögern bisher, Hadoop einzusetzen. Muss da ein Umdenken stattfinden, damit die Technologie dort ankommt? Was muss alles berücksichtigt werden, bevor eine Hadoop-Distribution verwendet wird?

Doug Cutting: Jedes Unternehmen ist naturgemäß konservativ, und das aus gutem Grund: Wenn man anfängt, eine neue Technologie zu verwenden, muss man sie auch über mehrere Jahre unterstützen. Man möchte also nicht einfach nur „the next big thing“ an Bord holen und dann daran hängenbleiben. Deswegen wurde auch Cloudera gegründet – um in der Lage zu sein, Unternehmenskunden Unterstützung anzubieten, ihnen Sicherheit zu bieten. Und genau das passiert: Wir beobachten, wie immer mehr diese Technologie annehmen, und ich glaube, die Hälfte der Firmen auf der Fortune-50-Liste sind mittlerweile Kunden. Viele davon stehen erst am Anfang und haben Hadoop noch nicht im gesamten Unternehmen deployt. Aber die Verbreitung geht weiter.

Es passiert natürlich nicht über Nacht. Wenn der Kernbusiness irgendeine Art der Datentechnologie ist, sind Änderungen schwierig. Es gibt eine Menge Fälle, in denen der Hadoop-Stack einfach noch nicht weit genug ist. Aber es gibt auch viele Fälle, in denen er heute schon eingesetzt wird und den Leuten einen wahren Vorteil über ihre Marktbegleiter verschafft. Wir beobachten also ein stetiges Wachstum und eine stetig zunehmende Verbreitung.

[ header = Seite 4: Herausforderungen für Hadoop ]

JAXenter: Was ist die größte Herausforderung, die Hadoop in Zukunft noch zu bewältigen hat? Oder reicht es im Grunde schon, so weiterzumachen wird wie bisher?

Doug Cutting: Die Herausforderung ist es, dem Hype gerecht zu werden. Bisher haben wir uns ganz gut angestellt: Man kann Daten wirklich speichern und effektiv verarbeiten. Aber es handelt sich um eine junge Technologie, der die Vorstellungen schnell vorauseilen. Also müssen wir die Erwartungen einerseits im Zaum halten, andererseits aber ein offenes Ohr dafür haben und sehen, ob wir ihnen gerecht werden können – wenn nicht schon in diesem Jahr, dann eben im nächsten.

Bislang sind wir damit ziemlich gut gefahren. Immerhin wenden viele die Technologie schon an. Aber es besteht noch Verbesserungspotential. Da wäre zum einen das Thema Sicherheit: Wir müssen überall Verschlüsselung unterstützen. Wir müssen Online-Systeme besser unterstützen, interaktive Queries ausführen können, genauso wie komplexere Online-Queries; kurz gesagt, eine Menge Integration mit etlichen Tools. Also noch viel Arbeit.

JAXenter: Ist die Hadoop-2.0-Codebasis bezüglich der gerade genannten Aufgaben ein Schritt in die richtige Richtung?

Doug Cutting: Ja, es wurde viel an der Performance im Dateisystem und an der Sicherheit gearbeitet. Die Richtung wird ja definitiv vom Bedarf der User vorgegeben, also gehe ich davon aus, dass wir auf jeden Fall in die richtige gehen [lacht]. Cloudera und andere hören auf die Kunden, und wir machen das, was die Kunden als nächstes am dringendsten brauchen. Es ist also bedarfsorientiert. Ich hoffe, wir hören auf die richtigen Leute, aber ich glaube schon, dass wir das tun.

JAXenter: Du hast Hadoop neulich als „Kerntechnologie“ der Plattform beschrieben. Welche anderen Big-Data-Technologien hast du zurzeit im Auge? Im Inkubator der Apache Software Foundation werden ja einige ausgebrütet…

Doug Cutting: Ich finde es ziemlich aufregend, dass Hadoop zu dieser Kerntechnologie geworden ist. Ich denke, Bigtop wird zum Knotenpunkt, an dem diese ganzen Teiltechnologien koordiniert werden. Ich denke auch an das YARN-Projekt innerhalb von Hadoop, das die Runtime des Kernels verallgemeinert, so dass verschiedene Arten der Datenverarbeitung möglich werden. Projekte wie Giraph zur Datenverarbeitung werden sehr nützlich sein. Dann ist da noch der ganze Bereich der Datenverarbeitung in Echtzeit, eine Art separater Entwicklungsstrang, der nicht ganz so stark in den Hadoop-Stack integriert ist. Das ist interessant zu beobachten und nichts, woran ich beteiligt gewesen bin. Storm und F4 sollten mehr hinzugezogen werden. HBase war lange das primäre Onlinesystem innerhalb dieses Stacks. Ich denke, dass wir nächstes Jahr viel mehr sehen werden, was wirklich mit Hadoop integriert ist und interaktive Queries liefern kann, über die einfachen Key Values von HBase hinaus. Es wird also aller Wahrscheinlichkeit nach mehr interaktive SQL-Queries geben, im Lucene-Lager außerdem das Lucene-ähnliche Solr Cloud, das skalierbare Suchen ermöglicht. Man kann also Petabytes von Daten mit sehr geringer Latenz und ziemlich gutem Durchsatz durchsuchen und dabei mehrere Queries simultan laufen lassen. In beiden Bereichen werden sehr große Fortschritte erzielt werden.

JAXenter: Ich möchte noch auf deine Rolle bei der Apache Software Foundation eingehen. Was gedenkst du, dort in dieser Rolle zu erreichen?

Doug Cutting: Ich bin seit einigen Jahren im Vorstand von Apache. Es ist nicht wirklich eine Machtposition – Apache ist eine Organisation von Ehrenamtlichen. Es gibt also keine Hierarchie wie in einem Unternehmen. Vielmehr kommt es auf die Koordination an. Wenn wir unsere Muskeln spielen lassen, dann nur in „Polizei-Aktionen“, das heißt, wenn eine Community nicht nach den Prinzipien handelt, die uns wichtig sind.

Wir machen uns sehr für Chancengleichheit innerhalb den Communities stark, so dass jeder dazukommen und sich an einem Projekt beteiligen kann. Die, die sich einbringen, werden allein aufgrund ihrer technischen Verdienste beurteilt. Wir wollen auch nicht, dass einzelne Firmen zu viel Einfluss auf ein Projekt ausüben oder dass sie die Projekte im Hinblick auf ihre kommerziellen Eigeninteressen kontrollieren, statt Rücksicht auf die technischen Erfordernisse der Community zu nehmen. Wenn wir sehen, dass so etwas geschieht, schreiten hier und da ein. Es ist nicht klar, ob sich diese Freiwilligen-Struktur endlos skalieren lässt – das funktioniert seit über einem Jahrzehnt, aber irgendwann müssen wir vielleicht mehr Leute einstellen. Die Anzahl der Partnerunternehmen, die systemadministrative Aufgaben übernehmen, ist gestiegen. Wir haben einen Partner für Marketing und Kommunikation und einen Assistenten, der einiges an Papierkram erledigt.

Irgendwann werden wir uns also vergrößern – wie und wie wir das dazu notwendige Fundraising aufziehen, das werden noch etwas knifflige Aufgaben. Bisher war unser Fundraising relativ passiv – wir haben große Firmen, die die ASF zu schätzen wissen, und die geben uns Geld. Das ist wunderbar, da an keine Bedingungen geknüpft, und bis jetzt hat es ausgereicht. Ob wir mehr aktives Fundraising machen und im Zuge dessen mehr Leute einstellen, werden wir dann sehen.

Die Größe der ASF ist ziemlich beeindruckend. Wir haben 3000 Committer und über 100 aktive Projekte in der Entwicklung – eine Menge Software, die aus einer Grassroots- oder basisdemokratisch geführten Stiftung hervorgeht.

JAXenter: Es muss unglaublich toll sein, so viele Projekte zu beobachten, die innovative Dinge beisteuern.

Doug Cutting: Und das alles läuft autonom, so ist es vorgesehen. Wir verlagern die Entscheidungsgewalt nach unten, einfach deshalb, weil wir es uns nicht leisten können, das Ganze top-down zu führen. Das würde nicht nur gegen unsere Prinzipien verstoßen, sondern wir haben auch gar keine bezahlten Manager, die das übernehmen würden. Außerdem würden wir gar nicht von den Leuten erwarten können, dass sie darauf reagieren.

JAXenter: Eine letzte Frage: Kannst du auf die Rolle von Cloudera näher eingehen und auf das neueste Release CDH4? Welche Probleme löst es für Unternehmen?

Doug Cutting: Bei Cloudera bin ich Chief Architect, also eine Art James Bond mit der Lizenz zum Hacken [lacht]. Meistens arbeite ich an Apache-Sachen, an Software, helfe, die ASF zu managen und unterstütze Cloudera bei der Erfüllung ihrer Mission, indem ich Zeit bei Kunden verbringe und dabei meist Hadoop und Apache erkläre.

CDH4 ist das kommerzielle Packaging der nächsten Generation des Hadoop-Ökosystems. Es basiert auf dem Open-Source-Projekt Bigtop – der Version, die kommerziellen Langzeitsupport bietet. Cloudera wird weiterhin an kritischen Bugfixes und Security Fixes an CDH arbeiten, was im Bigtop-Projekt bis jetzt fehlte. In diesem Zusammenhang gibt es auch das kommerzielle, proprietäre Angebot Cloudera Enterprise, mit dem sich Hadoop-Cluster managen lassen. Die Grenze, die wir zwischen unseren Open-Source- und proprietären Lösungen gezogen haben, ist die: Die APIs, mit denen man eine Applikation programmiert, sind Open-Source. Was man zur Konfiguration, zum Betrieb und Monitoring der Software braucht, ist meist proprietär. Das bekommt man bei uns zusammen mit Support.

JAXenter: Klingt nach einer ausgewogenen Lösung. Danke für das Gespräch, Doug!

Die Fragen stellte Chris Mayer.

Doug Cutting ist Chief Architect bei Cloudera und Gründer zahlreicher erfolgreicher Open-Source-Projekte, darunter Lucene, Nutch und Hadoop. Er ist außerdem im Vorstandsmitglied bei der Apache Software Foundation. Bis 2009 war er bei Yahoo! federführend daran beteiligt, einen Hadoop-Speicher für missionskritische Businessanalysen aufzubauen und zu deployen. Sein Studium an der Stanford University schloss er mit dem Bachelor ab.

Kommentare
  1. frank2013-10-24 13:46:41

    link zu teil 2 funktioniert nicht.

  2. hartmut2013-10-25 10:12:09

    Hi Frank, Teil 2 sollte jetzt wieder funktionieren.

    Vielen Dank für den Hinweis!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.