Page 84 - Linux Inside τ. 11

Linux Inside
84
βρίσκονται αποθηκευμένα τα στοιχεία όλων των blogs
WHERE {
?
contributor foaf:name "Kostas Livieratos" . //καθορισμός
του ονόματος του blogger του οποίου το URL αναζητάται
?
contributor foaf:weblog ?url . //επιστροφή του
αποτελέσματος
}
Ο επόμενος κώδικας θα ισχύει και θα λειτουργεί μόνο αν
οριστεί η διεύθυνση της κάρτας πληροφοριών του Tim
Berners Lee στο αρχείο του SPARQL. To FOAF file του Tim
Berners Lee βρίσκεται στη διεύθυνση
και περι-
λαμβάνει όλα τα διαθέσιμα στοιχεία.
2
ο παράδειγμα:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name
WHERE {
?
person foaf:name ?name .
}
Εν ολίγοις, τα NoSQL συστήματα βάσεων δεδομένων είναι
ιδιαίτερα χρήσιμα όταν εργαζόμαστε με μία τεράστια ποσότη-
τα δεδομένων και η φύση αυτών των δεδομένων δεν απαιτεί
ένα σχεσιακό μοντέλο για τη δομή των δεδομένων. Ακόμη,
για τη διενέργεια ακόμη και ενός (φαινομενικά) απλού query
απαιτούνται προγραμματιστικές γνώσεις και έτσι απέχουν
ακόμη πολύ από τον αρχικό στόχο τους, που είναι να παρέ-
χουν διευκολύνσεις zero-administration (καθώς απαιτούν με-
γάλη «προσπάθεια» στο deployment και στο maintaining).
Αν έπειτα απ’ όλα αυτά σας έπιασε η περιέργεια είτε να
ασχοληθείτε είτε να δοκιμάσετε σε κάποιο υπάρχον σύστημά
σας κάποιο NoSQL database system, παρακάτω ακολουθούν
οδηγίες για το πώς μπορείτε να βάλετε στο (Linux) σύστημά
σας ένα από τα πιο αξιόπιστα και γνωστά NoSQL software, το
Cassandra (στη συνέχεια ίσως την αναφέρω ως θηλυκό, για
ευνόητους λόγους).
Ξεκινώντας, να πω ότι για να μη χαθούν οι πιο αρχάριοι
χρήστες, δεν θα αναφερθώ καθόλου σε compiling κ.λπ., που
ίσως να ενδιέφερε πιο έμπειρους χρήστες. Αντίθετα, θα κατε-
βάσουμε την binary έκδοση κατευθείαν.
Κατεβάζουμε λοιπόν την εκτελέσιμη έκδοση του Cassandra
project από την επίσημη ιστοσελίδα του [1].
cd /usr/tmp
wget
cassandra-1.1.6-bin.tar.gz
tar –xzvf <filename>
Έπειτα κατεβάζουμε το Java Runtime Environment (JRE)
από την επίσημη σελίδα της Oracle, το οποίο είναι απαραίτη-
το στοιχείο για τη λειτουργία του Cassandra, καθώς είναι
γραμμένο σε Java [2]. Ανατρέξτε στην τεκμηρίωση της διανο-
μής σας για το πώς θα εγκαταστήσετε το JRE.
Αφού τελειώσουμε με αυτήν την εγκατάσταση, ήρθε η ώρα
για να κάνουμε την παραμετροποίηση. Περιηγούμαστε στον
αντίστοιχο φάκελο και επεξεργαζόμαστε το αρχείο storage-
conf.xml:
cd /usr/tmp/apache-cassandra-0.5.1/conf
nano storage-conf.xml
Εκεί αλλάζουμε το στοιχείο ClusterName σε κάτι που να
έχει νόημα για το δικό μας σύστημα και, φυσικά, τις παραμέ-
τρους CommitLogDirectories, DataFileDirectories,
CalloutLocation και StagingFileDirectory στους αντίστοιχους
φακέλους που πρόκειται να αποθηκευτούν οι βάσεις δεδομέ-
νων.
Προτού ξεκινήσετε την Cassandra στον server σας, καλό εί-
ναι να σετάρετε τη μεταβλητή JAVA_HOME, το path δηλαδή
όπου βρίσκονται εγκατεστημένα τα Java JRE bin αρχεία. Αυ-
τό μπορείτε να το κάνετε κάπως έτσι, αξιοποιώντας την εντο-
λή set:
set JAVA_HOME=/path/to/java/jdk7_64
Σε περίπτωση που εμφανιστούν αναπάντεχα errors ύστερα
από την τελευταία εντολή (όπως έγινε και με τον υποφαινόμε-
νο), τότε κατά πάσα πιθανότητα κάτι δεν πάει καλά με το σε-
τάρισμα του JAVA_HOME, οπότε και θα πρέπει να αφιερώσε-
τε λίγο χρόνο για να δείτε ποιο είναι το σωστό path για την
Java. Μην ξεχνάτε οτι το NoSQL σύστημα Cassandra είναι
γραμμένο σε Java και απαιτεί την ύπαρξη του JRE για να λει-
τουργήσει.
Αφού ολοκληρώσουμε και αυτό, με cd .. επιστρέφουμε
στον προηγούμενο φάκελο και εκεί με την εντολή
bin/cassandra-f ανοίγουμε την Cassandra.
Τώρα έχουμε ήδη έτοιμο έναν κόμβο που τρέχει την
Cassandra. Αξιοποιώντας ένα ακόμη open source εργαλείο
του Apache Foundation, το Thrift (το οποίο είναι ένα software
framework για cross-language services development και υπο-
στηρίζεται από το δεδομένο project), θα μπορέσουμε να
«
εγκαθιδρύσουμε» την επικοινωνία μας (χρησιμοποιώντας
PHP ή JAVA) με την Cassandra, δημιουργώντας records που
απλώς τα καλούμε από τον κόμβο που θέλουμε. Για να λει-
τουργήσει, πρέπει να κατεβάσουμε και να εγκαταστήσουμε
μία βιβλιοθήκη της C++, την Boost [3].
cd /usr/ports/devel/boost
make all
make install
cd /usr/ports/devel/automake110
make all
make install
/
usr/ports/devel/autoconf262
make all
make install
Linux Labs - NoSQL
Τροποποιούμε το cassandra.yaml αρχείο σύμφωνα με τις
ανάγκες μας.
3
Τα NoSQL συστήματα βάσεων δεδομένων είναι
ιδιαίτερα χρήσιμα όταν εργαζόμαστε με μία
τεράστια ποσότητα δεδομένων και η φύση
αυτών των δεδομένων δεν απαιτεί ένα σχεσιακό
μοντέλο για τη δομή των δεδομένων.