Database Reference
In-Depth Information
{
Zuerst erzeugen wir ein
Scan
-Objekt, über das wir die Wiki-Tabelle durch-
gehen.
|
Um die Zeilen- und Spaltendaten zu extrahieren, müssen wir ein we-
nig mit den Bytes jonglieren, aber auch das ist generell nicht besonders
schwierig.
}
Jedes Mal, wenn das
linkpattern
im Seitentext auftaucht, extrahieren
wir den Zielartikel und den Text des Links und fügen diese Werte dann
zu unseren
Put
-Instanzen hinzu.
~
Abschließend weisen wir die Tabelle an, die akkumulierte
Put
-Operatio-
nen auszuführen. Es ist möglich (wenn auch unwahrscheinlich), dass ein
Artikel keine Links enthält. Das ist der Grund für die
if put
_
to
-Klausel.
Die Verwendung von
setWriteToWAL(false)
für diese Puts war eine be-
wusste Entscheidung. Da es sich um eine Übung mit didaktischem Hin-
tergrund handelt und weil wir das Skript einfach erneut ausführen kön-
nen, wenn etwas schiefgeht, entscheiden wir uns für den Geschwindig-
keitsvorteil und akzeptieren unser Schicksal, wenn der Knoten ausfallen
sollte.
Das Skript ausführen
Wenn Sie bereit sind und alle Vorsicht unbekümmert in den Wind schießen,
starten Sie das Skript.
${HBASE
_
HOME}/bin/hbase shell generate
_
wiki
_
links.rb
Die Ausgabe sollte etwa so aussehen:
500 pages processed (10 petametres)
1000 pages processed (1259)
1500 pages processed (1471 BC)
2000 pages processed (1683)
...
Genau wie das vorige Skript können Sie es so lange laufen lassen, wie Sie
wollen, sogar bis zum Ende. Wenn Sie es unterbrechen wollen, drücken Sie
Ctrl
+
C
.
Sie können die Plattennutzung des Skripts wie vorhin mit
du
überwachen. Sie
werden neue Einträge für die von uns angelegte
links
-Tabelle finden und die
Größen nehmen ständig zu, je länger das Skript läuft.