Sebuah catatan untuk berbagi kepada teman-teman web developer yang ingin menggunakan cassandra sebagai database-nya. Sampai tulisan ini dibuat, saya pun masih belajar develop dalam lingkungan php dan cassandra
I. Install Cassandra dan Thrift
- Download Cassandra http://cassandra.apache.org/download/ (yang digunakan dalam contoh ini versi 0.7.x)
- Download Thrift http://thrift.apache.org/download/ (yang digunakan dalam contoh ini versi 0.5.0)
- Install dependencies untuk thrift
*Ubuntu:
sudo apt-get install libboost-dev automake libtool flex bison pkg-config g++*RHEL/CentOS/Fedora:
sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel*openSUSE:
sudo zypper install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel - Extract file tarball thrift yang telah di download (thrift-0.5.x.tar.gz)
./configure
make - Build interface PHP dengan Cassandra
./compiler/cpp/thrift -gen php ../PATH-KE-CASSANDRA/interface/cassandra.thrift - Copy file-file penting ke tempat yang penting
sudo mkdir -p /usr/share/php/Thrift
sudo cp -R gen-php/ /usr/share/php/Thrift/packages/
sudo cp -R lib/php/src/* /usr/share/php/Thrift/
II. Membuat Extensi Tambahan Untuk PHP: thrift_protocol.so
- Pindah direktori ke PATH-KE-THRIFT/lib/php/src/ext/thrift_protocol
- Install dependencies untuk membuat PHP extensions:
*Ubuntu:sudo apt-get install php5-dev
*CentOS:sudo yum install php-devel
*openSUSE:sudo zypper install php-devel - Compile dan make extension php:
phpize
./configure --enable-thrift_protocol
make - Copy extension .so ke direktori extensions php
*Ubuntu:sudo cp modules/thrift_protocol.so /usr/lib/php5/20060613/
*64-bit CentOS:sudo cp modules/thrift_protocol.so /usr/lib64/php/modules/
*openSUSE:sudo cp modules/thrift_protocol.so /usr/lib/php5/extensions/ - Aktifkan extension tersebut di php.
Buka dan edit file berikut:
*Ubuntu:vim /etc/php5/conf.d/thrift_protocol.ini
*CentOS:vim /etc/php.d/thrift_protocol.ini
*openSUSE:vim /etc/php5/conf.d/thrift_protocol.iniTambahkan line berikut:
extension=thrift_protocol.so - Cek apakah modul sudah di-load apache:
php -i | grep -v "PWD" | grep "thrift_protocol" - Restart Apache.
*Ubuntu:sudo /etc/init.d/apache2 restart
*CentOS:sudo /etc/init.d/httpd restart
*openSUSE:sudo /etc/init.d/apache2 restart
III. Start Cassandra Server
- Pindah ke direktori Cassandra
- Install Sun Java runtime.
- JIka diperlukan beri permission khusus untuk Cassandra:
WHOAMI=`whoami`
sudo mkdir /var/log/cassandra/
sudo chown $WHOAMI /var/log/cassandra/
sudo mkdir /var/lib/cassandra
sudo chown $WHOAMI /var/lib/cassandra/ - Start Cassandra:
./bin/cassandra -f - Jika tak ada pesan error, bisa dipastikan Cassandra sudah berjalan dengan semestinya
- Tes koneksi ke server:
./bin/cassandra-cli -host localhost -port 9160 - Jika berhasil masuk ke shell cassandra, berarti koneksi sudah aktif dan anda dapat memulai men-deploy database melalui command line interface. Test dengan membuat Keyspace baru:
# membuat keyspace baru dengan nama 'DatabaseKita'
create keyspace DatabaseKita;# set DatabaseKita sebagai keyspace yang aktif
use DatabaseKita;# membuat column family (CF) dengan nama Users
create column family Users;# insert data baru (column baru) dengan key: abetobing, datanya: nama_lengkap, isi data: "Abe Tobing"
set Users['abetobing']['nama_lengkap'] = 'Abe Tobing';# insert data tambahan ke abetobing, yaitu lokasi
set Users['abetobing']['lokasi'] = 'Jakarta';
# insert user baru bernama dengan key: 'mboi_coy', nama_lengkap: 'Boyke Dian', profesi: 'System Administrator'set Users['mboi_coy']['nama_lengkap'] = 'Boyke Dian';
set Users['mboi_coy']['profesi'] = 'System Administrator';# ambil data user Abe Tobing, menggunakan key: abetobing
get Users['abetobing'];
Sumber:
- http://wiki.apache.org/cassandra/GettingStarted
- https://wiki.fourkitchens.com/display/PF/Using+Cassandra+with+PHP
Comments
Saya ingin membangun aplikasi search engine menggunakan cassandra dan PHP sbg bhs pemrogramannya, nah yg saya ingin tanyakan web server apa yg cocok untuk cassandra?
Add new comment