Bu Yazımda Apache Cassandra ‘ yı Ubuntu üzerinde kurup php ile çalışır hale getirmeyi anlatacağım. Cassandra son sürümlerinde SQL benzeri bir dil olan CQL i de kendisine eklemiş Daha bir kullanası hale gelmiştir.
Ele aldığım sürümler
Ubuntu 12.04
Cassandra 2.0.3
Php 5.3.10
Java Kurulumu
1 2 3 4 |
root@CQLPHP:~# apt-get install python-software-properties root@CQLPHP:~# add-apt-repository ppa:webupd8team/java root@CQLPHP:~# apt-get update root@CQLPHP:~# apt-get install oracle-java7-installer |
Cassandra Kurulumu
1 2 3 |
root@CQLPHP:~# wget ftp://ftp.itu.edu.tr/Mirror/Apache/cassandra/2.0.3/apache-cassandra-2.0.3-bin.tar.gz root@CQLPHP:~# tar -xvf apache-cassandra-2.0.3-bin.tar.gz root@CQLPHP:~# cd apache-cassandra-2.0.3/bin |
Cassandra yı test edelim
1 2 |
root@CQLPHP:~/apache-cassandra-2.0.3/bin# ./cassandra root@CQLPHP:~/apache-cassandra-2.0.3/bin# ./cqlsh |
aşağıdakine benzer bir çıktı almamız gerekli
1 2 3 4 |
Connected to Test Cluster at localhost:9160. [cqlsh 4.1.0 | Cassandra 2.0.3 | CQL spec 3.1.1 | Thrift protocol 19.38.0] Use HELP for help. cqlsh |
Cassandra üzerinde ilk KEYSPACE imizi ve içerisinde column family imizi oluşturup bir iki tane bilgi girelim.
1 2 3 |
cqlsh CREATE KEYSPACE test_space WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; cqlsh USE test_space ; cqlsh:test_space CREATE COLUMNFAMILY users ( username varchar PRIMARY KEY , password varchar ) ; |
password umuz için index tanımlıyalım.
1 |
cqlsh:test_space CREATE INDEX on users (password) ; |
ilk veri girişimizi yapalım ve çıktısını alalım.
1 2 3 4 5 6 |
cqlsh:test_space INSERT INTO users (username, password ) VALUES ( 'enes','enes324'); cqlsh:test_space select * from users where username ='enes'; username | password ----------+---------- enes | enes324 (1 rows) |
şuna kadar cassandramız başarılı bir şekilde çalışıyor.
exit; yazıp çıkıyoruz.
Php Kurulumu.
1 |
root@CQLPHP:~# apt-get install php5-cli php5-dev |
Php – Cql Kurulumu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@CQLPHP:~# apt-get install libboost-all-dev php5-dev libpcre3-dev pkg-config g++ root@CQLPHP:~# echo "deb http://debian.datastax.com/community stable main" /etc/apt/sources.list root@CQLPHP:~# sudo wget -O - http://debian.datastax.com/debian/repo_key | apt-key add - root@CQLPHP:~# apt-get update root@CQLPHP:~# apt-get install libthrift0 libthrift-dev thrift-compiler root@CQLPHP:~# ln -s /usr/bin/thrift /usr/local/bin/thrift root@CQLPHP:~# apt-get install libboost-dev automake libtool flex bison pkg-config g++ make unzip root@CQLPHP:~# wget https://github.com/Orange-OpenSource/YACassandraPDO/archive/master.zip root@CQLPHP:~# unzip master.zip root@CQLPHP:~# cd YACassandraPDO-master/ root@CQLPHP:~/YACassandraPDO-master# phpize root@CQLPHP:~/YACassandraPDO-master# ./configure root@CQLPHP:~/YACassandraPDO-master# make root@CQLPHP:~/YACassandraPDO-master# make install |
php.ini dosyamızın en alt satırına ben php-cli ye ekledim.
1 |
extension=pdo_cassandra.so |
olarak ekliyoruz.
Şimdi php kodlarımızı yazıp test ediyoruz
Not: Az önce cqlsh komut satırından oluşturmuş ve girmiş olduğumuz bilgilere göre php dosyamızı oluşturdum.
1 |
root@CQLPHP:~# vim cassandra_test.php |
Dosyamızı vim ile açıp içerisine aşağıdakileri yaziyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // Modul yuklumu diye kontrol et if (!extension_loaded("pdo_cassandra")) die("skip Module not loaded"); // Cassandra Baglantilarini Olustur. $dsn = 'cassandra:host=127.0.0.1;port=9160;cqlversion=3.0.0'; // KeySpace Tanimla $keyspace = "test_space"; // Baglantiyi Olustur. $db = new PDO($dsn); // Keyspave Sec $db-query ("USE $keyspace"); // Komutu Yaz $stmt= $db-query ("select * from users"); // Queryi Yazdir var_dump ($stmt-fetchAll ()); |
Şimdi Dosyamızı çalıştıralım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@CQLPHP:~# php cassandra_test.php array(1) { [0]= array(4) { ["username"]= string(4) "enes" [0]= string(4) "enes" ["password"]= string(7) "enes324" [1]= string(7) "enes324" } } |
Php ile cassandra kurulumu tamamlamış bulunmuktayız . Yanlış veya eksik bilgi vermiş olabilirim gözünüze çarpan yada test ettiğiniz anda çalışmayan bilgiler varsa lütfen bildirin.
Bi sonraki yazılarımda Cassandra Cluster Kurulumu ve CQL Komutları hakkında ayrıntılı bilgiler vermeye çalışacağım.
İlk Yorumu Siz Yapın