In diesem Teil meiner Banan Pi Cluster für Hadoop Artikelreihe beschreibe ich wie man den Cluster ausprobieren kann und einige Performance Vergleiche anstellt. Natürlich sollte man keine Wunder erwarten. Immerhin lassen wir nur fünf kleine Banana Pi’s rechnen und die können auch wenn sie sich die Arbeit teilen keinen Supercomputer nachahmen.
Bevor wir testen können benötigen wir dazu ein paar Daten. Ich habe mich auf das bekannte WordCount Beispiel konzentriert und meine Tests damit durchgeführt. Der Vorteil ist, dieses Programm wird mit Hadoop ausgeliefert (auch mit Spark, aber dazu kommen wir später). Das Programm zählt in einer Textdatei wie oft jedes Wort vorkommt und liefert das Ergebnis in einer Datei zurück.
Banana Pi Cluster – Testdaten bereit stellen
Als Testdaten benötigen wir eine große Menge an Text. Dabei ist der Inhalt reichlich egal. Es kommt nur darauf an, dass es viel Text ist. Auf der Seite The Blog Authorship Corpus kann man eine zip-Datei herunter laden, die ca. 800 MB Text enthält, der aus über 19000 Blogs zusammengestellt wurde. Danach packt man die Datei aus und fügt alles in einer Datei zusammen.
wget http://www.cs.biu.ac.il/~koppel/blogs/blogs.zip
unzip blogs.zip
cd blogs/
cat .xml | sed -e 's/<[^>]>//g' >> blogs.txt
Die Datei blogs.txt enthält jetzt unsere Testdaten.
Banana Pi Cluster – Der erste Test
Um die Datei blogs.txt aus Hadoop verwenden zu können, müssen wir sie erst auf das Hadoop Dateisystem kopieren.
hdfs dfs -copyFromLocal blogs.txt /blogs.txt
Um zu überprüfen, ob die Datei auch angekommen ist, kann man sich mit
hdfs dfs -ls /
den Verzeichnisinhalt anzeigen lassen.
Jetzt können wir das Beispielprogramm auf die Daten los lassen.
hadoop jar /opt/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /blogs.txt /blogs-result1
Der letzte Parameter /blogs-result1 gibt das Verzeichnis an, in dem die Ergebinsse abgelegt werden. Das Verzeichnis darf noch nicht existieren, sonst bricht das Programm mit einer Fehlermeldung ab. Auf meinem Cluster läuft das Programm zwischen 29-30 Minuten (mit den nativen Bibliotheken einen Tick schneller als mit den Bilbiotheken aus dem Paket).
Die Ergebnisse kann man sich wie folgt anschauen:
hdfs dfs -cat /blogs-result/part-r* | less
Weitere Testergebnisse werde ich in diesem Artikel ergänzen (z.B. mit Spark und einem selbst gebasteltem WordCountMapReduce-Python Skript.
Pingback: URL