So installieren und konfigurieren Sie Riak2 mit Python3 unter Ubuntu 14.04

Einführung

Riak ist ein nicht relationaler noSQL-Datenspeicher mit Schwerpunkt auf verteilter Datenbankarchitektur. Mit der neuesten Version von Riak 2.1.1 können alle Daten stark konsistent gemacht werden, wobei die Daten beim Abrufen auf dem neuesten Stand sind, im Gegensatz zu häufig konsistenten Daten, bei denen die Daten zugänglicher, aber nicht auf dem neuesten Stand sind.

Riak ist eine Wahl in einer Familie von NoSQL-Implementierungen mit Schlüsselwerten, zu denen Konkurrenten wie Redis, MemcacheDB und Aerospike gehören. Als Schlüsselwertdatenbank ist sie daher nicht für SQL-ähnliche Abfragen optimiert, die einen gesamten Datensatz erfassen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

Schritt 1 - Riak installieren

In diesem Abschnitt werden wir Riak selbst installieren.

Mit der Veröffentlichung von 2.0 hat Riak seine Pakete von einem selbst gehosteten apt-Repository auf den packagecloud.io-Dienst migriert. Daher müssen wir den "+ apt +" - Index mit Riak füllen. Glücklicherweise stellt Riak ein benutzerdefiniertes Skript zur Verfügung, das genau das tut.

Zuerst laden wir das Skript herunter.

curl -O https://packagecloud.io/install/repositories/basho/riak/script.deb.sh

Öffnen Sie das Skript, anstatt es direkt auszuführen, um sicherzustellen, dass es das enthält, was wir erwarten.

less script.deb.sh

Um Pakete über HTTPS abzurufen, muss das Skript das Paket "+ apt-transport-https +" installieren. Außerdem wird nach einer Zertifizierungsstelle gesucht, ein öffentlicher Schlüssel importiert und der Paketindex aktualisiert.

Drücken Sie + q +, um die Datei zu schließen, und führen Sie dann das Skript aus.

sudo bash script.deb.sh

Schließlich installieren Sie Riak.

sudo apt-get install riak=2.1.1-1

Schritt 2 - Konfigurieren und Starten von Riak

In diesem Abschnitt werden wir einen Riak-Knoten konfigurieren und starten.

Zunächst müssen wir Riaks Erlang VM mit einigen empfohlenen Einstellungen optimieren. Wir werden zwei Änderungen vornehmen: Festlegen der Warteschlangen-Scan-Intervalle und Deaktivieren der Scheduler-Komprimierung der Last.

Öffnen Sie die Konfigurationsdatei des neuen Riak 2.0 mit "+ nano +" oder Ihrem bevorzugten Texteditor.

sudo nano /etc/riak/riak.conf

Kommentieren Sie die Zeile "+ erlang.schedulers.force_wakeup_interval = 500 " aus, die unten hervorgehoben ist. Stellen Sie sicher, dass das führende Leerzeichen ebenfalls gelöscht wird, sodass das " e +" das erste Zeichen der Zeile ist.

/etc/riak/riak.conf

. . .

## Set scheduler forced wakeup interval. All run queues will be
## scanned each Interval milliseconds. While there are sleeping
## schedulers in the system, one scheduler will be woken for each
...
## Default: 500
##
## Acceptable values:
##   - an integer


. . .

Wiederholen Sie diesen Vorgang für "+ erlang.schedulers.compaction_of_load = false +" im Block direkt nach:

/etc/riak/riak.conf

. . .

## Enable or disable scheduler compaction of load. By default
## scheduler compaction of load is enabled. When enabled, load
## balancing will strive for a load distribution which causes as many
...
## Default: false
##
## Acceptable values:
##   - one of: true, false


. . .

Speichern und schließen Sie die Datei.

Führen Sie zum Starten eines Riak-Knotens Folgendes aus:

sudo riak start

Sie werden folgendes sehen.

Ausgabe

!!!!
!!!! WARNING: ulimit -n is 1024; 65536 is the recommended minimum.
!!!!

Die obige Meldung warnt Sie davor, dass in unserem System ein niedriges Limit für geöffnete Dateien festgelegt ist, wodurch die Anzahl der zu einem bestimmten Zeitpunkt geöffneten Dateihandles begrenzt wird. Stellen Sie sich jeden Griff als Schreibwerkzeug vor, das wir besitzen. Jeder Computerprozess benötigt zum Schreiben ein Schreibwerkzeug

Die Systembeschränkung für verfügbare Schreibwerkzeuge beträgt standardmäßig 1024; Riak empfiehlt, diese Grenze auf 65536 anzuheben. Informationen zum Anheben dieses Grenzwerts finden Sie unter official Riak Open Files Limit documentation.

Gehen Sie folgendermaßen vor, um zu überprüfen, ob Ihr Knoten ausgeführt wird.

sudo riak ping

Der Befehl gibt "+ pong +" aus, wenn der Knoten ausgeführt wird, und gibt andernfalls einen Fehler zurück.

Führen Sie Folgendes aus, um eine Sequenz vorgefertigter Riak-Tests auszuführen:

sudo riak-admin test

Dieser obige Befehl gibt Folgendes aus.

Ausgabe

Successfully completed 1 read/write cycle to '[email protected]'

Ihr Riak-Knoten ist jetzt betriebsbereit.

Schritt 3 - Erstellen einer Beispiel-Python-Anwendung (optional)

Im Folgenden finden Sie eine optionale Reihe von Schritten zum Einrichten einer Python-Riak-Beispielanwendung. Die obigen Anweisungen sind sprachunabhängig und hängen nicht von den folgenden ab, um normal zu funktionieren. Wenn Sie nicht an einer Python-Beispielanwendung interessiert sind, können Sie zum Abschnitt Fazit springen.

Überprüfen Sie zunächst Ihre aktuelle Python-Version.

python --version

Sie sollten die Ausgabe sehen:

OutputPython 2.7.6

Wir möchten, dass + python Python 3 ausführt. Entfernen wir also die alte Binärdatei.

sudo rm /usr/bin/python

Erstellen Sie als Nächstes eine symbolische Verknüpfung zur Python 3-Binärdatei.

sudo ln -s /usr/bin/python3 /usr/bin/python

Wenn Sie jetzt "+ python --version " erneut ausführen, wird die Ausgabe " Python 3.4.0 +" angezeigt.

Als Nächstes installieren wir Pip, das empfohlene Paketinstallationsprogramm für Python-Pakete. Mit Pip können wir jedes Python3-Paket, das wir haben möchten, einfach verwalten. Eine Übersicht über Pip finden Sie unter dieses Tutorial.

Führen Sie zum Installieren einfach Folgendes aus:

sudo apt-get install python3-pip

Jetzt müssen wir den Python-Riak-Client installieren. Einige Abhängigkeiten müssen zuerst erfüllt werden:

sudo apt-get install python3-dev libffi-dev libssl-dev

Installieren Sie den Client.

sudo pip3 install riak

Schließlich werden wir eine Beispielanwendung zum Testen der Python-Riak-Kombination codieren. Erstellen Sie einen neuen Ordner, in dem sich die Anwendung befindet, und erstellen Sie eine neue Datei.

mkdir ~/test
sudo nano ~/test/app.py

Fügen Sie folgendes ein. Dies ist ein Beispielcode aus der offiziellen Riak-Dokumentation von http://docs.basho.com/riak/latest/dev/taste-of-riak/python/.

~ / test / app.py

import riak

# connect to Riak
myClient = riak.RiakClient(pb_port=8087, protocol='pbc')

# create new Bucket
myBucket = myClient.bucket('test')

# store key-value pairs
val1 = 1
key1 = myBucket.new('one', data=val1)
key1.store()

val2 = "two"
key2 = myBucket.new('two', data=val2)
key2.store()

val3 = {"myValue": 3}
key3 = myBucket.new('three', data=val3)
key3.store()

# fetch the data
fetched1 = myBucket.get('one')
fetched2 = myBucket.get('two')
fetched3 = myBucket.get('three')

print('Value 1 correct: '+str(val1 == fetched1.data))
print('Value 2 correct: '+str(val2 == fetched2.data))
print('Value 3 correct: '+str(val3 == fetched3.data))

Führen Sie nun Folgendes aus, um diese Anwendung zu testen.

python ~/test/app.py

Es wird die folgende Warnung ausgegeben, die jedoch ignoriert werden kann.

Python application warning/usr/local/lib/python3.4/dist-packages/riak/security.py:54: UserWarning: Found OpenSSL 1.0.1f 6 Jan 2014 version, but expected at least OpenSSL 1.0.1g.  Security may not support TLS 1.2.
 warnings.warn(msg, UserWarning)

Transport Layer Security (TLS) 1.2 ist einfach ein strengeres Sicherheitsprotokoll, das auf TLS 1.1 aufbaut, und TLS ist im Allgemeinen ein Upgrade von SSL. Internet Explorer unterstützt TLS 1.1 und 1.2 jedoch nicht allgemein, und TLS 1.2 ist in früheren Versionen aller gängigen Browser deaktiviert. Infolgedessen können wir uns mit SSL begnügen, um die Verbindungen zwischen der Anwendung und dem Riak-Datenspeicher sicher zu regeln.

Es sollte Folgendes ausgeben:

Ausgabe

Value 1 correct: True
Value 2 correct: True
Value 3 correct: True

Das ist es!

Fazit

Sie haben Riak 2 jetzt konfiguriert und erfolgreich mit Python3 verbunden. Diese Riak 2-Installation ist jedoch nicht spezifisch für Python und kann leicht an andere Sprachen angepasst werden. Weitere Informationen zum Sichern von Riak finden Sie unter den offiziellen Riak 2-Empfehlungen.