Big Data und Tiny Hardware – Teil 1

1 Kommentar

Abstract

Nachdem Ihr unsere „Big Data in a Box“-Lösung auf Schulungen und Usergroup-Treffen gesehen habt, haben wir immer wieder Anfragen zur Realisierung von Euch erhalten. Ihr wolltet wissen was wir dort gebaut haben und wie alles einzurichten ist. Daher haben wir beschlossen eine kleine Serie zu schreiben und Euch somit ein paar Tipps und Anregungen zum Basteln und Testen zu geben.

6BananaPi-Temp

Das Ziel

Seit einiger Zeit beschäftigen wir uns mit diversen Big-Data-Technologien und haben eine Möglichkeit gesucht um bei Schulungen, Konferenzen oder zur Evaluierung von Methoden, Technologien und Tools ein schnelles Setup für eine Testumgebung zu generieren. Verschiedene Lösungen mit virtuellen Maschinen oder Docker Container fielen weg, da

  1. es zum einen je nach Schulungssituation nicht möglich ist ein Notebook in ein Firmennetz zu bekommen und somit die Teilnehmer keinen Zugriff erhalten würden
  2. je nach Szenario Seiteneffekte hinsichtlich der Aussagefähigkeit der erhobenen KPIs nicht vergleichbar wäre
  3. echte Hardware anschaulicher macht welche z.B. Fail-Over-Szenarien gerade simuliert werden

Wir haben uns somit entschlossen das Projekt „Big Data in a Box“ zu starten und eine Lösung zu entwerfen, die alle oben genannten Anforderungen abdeckt und eine Basis für verschiedene Technologiestacks bietet.

Die Hardware

Bei der Auswahl der zu verwendenden Hardwareplattform wollten wir ein besonderes Augenmerk darauf legen, dass sie transportabel und robust ist. Zuerst zogen wir den Raspberry Pi der britischen Raspberry Pi Foundation und den verwandten Banana Pi der chinesischen Bildungsinitiative Lemaker.org in Betracht. Allerdings überwogen hier die Bedenken zur Größe des verfügbaren Arbeitsspeichers. Nachfolgend noch ein technischer Vergleich der beiden Plattformen.

Raspberry PiModel B+ Banana Pi
SoCBroadcomBCM2835 Allwinner A20
CPUARM1176JZF-S (700 MHz bis 1000 MHz)ARM Cortex-A7 Dual-Core (1000 MHz)
GPUBroadcom VideoCore IVARM Mali 400MP2
RAM512 MByte1 GByte DDR3 DRAM
LAN10/100 MBit/s10/100/1000 MBit/s
GPIO17 Pins26 Pins, I2C, SPI, UART, CAN bus
USB4x USB 2.0 Host2x USB 2.0 Host, 1x USB OTG, 1x CSI Kamera
SonstigesOnboard Micro und IR-ReceiverSATA 7-Pin-SATA-Port
Größe85,6 mm x 56,0 mm92,0 mm x 60,0 mm

Letztlich gaben der größere Arbeitsspeicher, die Dual-Core CPU und die Möglichkeit bei Bedarf eine SATA-Festplatte zu nutzen den Ausschlag. Es ist jedoch zu beachten, dass die beiden Hardwareplattformen, trotz ihrer optischen Ähnlichkeit, nicht vergleichbar sind. Die GPIO-Leiste ist etwas versetzt und daher für Extension-Boards des Rapsberry in den meisten Fällen unbrauchbar. Zudem ist der Banana Pi einige Millimeter größer und passt daher nicht in die Gehäuse des Raspberry. Wir haben uns daher vorerst zur Installation in einer „Pizzaschachtel“ entschieden.

6BananaPi-PizzaBox

Zum Vergleich der Rechenleistung haben wir zudem folgenden Test durchgeführt:
sysbench --test=cpu --num-threads=2 --cpu-max-prime=20000 run

Hierbei schnitt der Banana Pi mit einer Ausführdauer von 398 Sekunden deutlich besser ab als der Raspberry Pi der 1296 Sekunden benötigte.

Mittlerweile ist mit dem Raspberry Pi2 nun eine leistungsfähigere Version der Hardware der Raspberry Pi Foundation verfügbar. Ob unser Aufbau, z.B. von der dort verwendeten QuadCore-CPU profitieren könnte haben wir bislang noch nicht evaluieren können.

Aufbau und Installation

Nachfolgend unsere Stückliste:

  1. 6 * Banana Pi
  2. 6 * USB-WLAN Dongle
  3. 6 * 16 GB SD Karte (Class 10)
  4. 1 * WLAN Router

Als Basis für unsere Konfiguration dient das Betriebssystem Bananian

Nachdem das Image auf die SD-Karte kopiert wurde, melden wir uns mit root / pi an und durchlaufen die initiale Konfiguration mittels

bananian-config


...
Video acceleration is currently disabled. Do you want to enable it? (y/n) --> n
USB OTG is currently disabled. Do you want to enable it? (y/n) --> n
Do you want to expand the root file system (recommended)? (y/n) --> y

Im Anschluss muss ein aktuelles Oracle Java JRE 7 installiert werden. Wichtig ist zu beachten, dass ein OpenJDK im weiteren Betrieb zu Problemen führen wird.

Die Installation von Cassandra erfolgt auf Basis der Tar-Archive.


cd /opt
curl -L http://downloads.datastax.com/community/dsc.tar.gz | tar xz
cd dsc-cassandra-2.1.x

Ihr findet folgende Verzeichnisse

VerzeichnisInhalt
dataDaten, commitlog und saved_caches (kann in cassandra.yaml überschrieben werden)
binScripte zum starten und stoppen
confKonfiguration und Umgebungseinstellungen
interfaceThrift und Avro Client API
javadocCassandra Java API Dokumentation
libJAR und Lizenzdateien
toolsCassandra tools and Beispielkonfigurationen (cassandra.yaml) für Stresstests.

3BananaPi-PizzaBox

Schaut euch dort einmal in Ruhe um. In Teil 2 werde ich dann auf die Konfiguration eingehen.

Kommentare

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.