Abe Tobing

Web developer, local musician and a beer lover

Menginstall Cassandra (Part I)

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

  1. Download Cassandra http://cassandra.apache.org/download/ (yang digunakan dalam contoh ini versi 0.7.x)
  2. Download Thrift http://thrift.apache.org/download/ (yang digunakan dalam contoh ini versi 0.5.0)
  3. 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

  4. Extract file tarball thrift yang telah di download (thrift-0.5.x.tar.gz)
    ./configure
    make
  5. Build interface PHP dengan Cassandra
    ./compiler/cpp/thrift -gen php ../PATH-KE-CASSANDRA/interface/cassandra.thrift
  6. 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

  1. Pindah direktori ke PATH-KE-THRIFT/lib/php/src/ext/thrift_protocol
  2. 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
  3. Compile dan make extension php:
    phpize
    ./configure --enable-thrift_protocol
    make
  4. 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/
  5. 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.ini

    Tambahkan line berikut:
    extension=thrift_protocol.so

  6. Cek apakah modul sudah di-load apache:
    php -i | grep -v "PWD" | grep "thrift_protocol"
  7. 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

  1. Pindah ke direktori Cassandra
  2. Install Sun Java runtime.
  3. 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/
  4. Start Cassandra:
    ./bin/cassandra -f
  5. Jika tak ada pesan error, bisa dipastikan Cassandra sudah berjalan dengan semestinya
  6. Tes koneksi ke server:
    ./bin/cassandra-cli -host localhost -port 9160
  7. 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:

 

Comments

Anonymous's picture
Anonymous:

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

Thanks for your visit :)