Cassandra PHP Client Library

Для работы с Cassandra на PHP нужен не только PHP Thrift, но и дополнительные PHP-либы. Можно конечно взять либы, идущие с Thrift и дописать их для себя, но есть и готовые решения.

CPCL - Cassandra PHP Client Library. В поставке опять же идет PHP Thrift хз какой версии, но там же есть и либы с классами для работы с Cassandra. А кроме того, есть и подробные примеры.

В итоге, тыкая примеры Cassandra PHP Client Library и наблюдая за изменениями записей в Cassandra Cluster Admin, можно освоить базовые принципы работы с Cassandra в PHP.

Cassandra Cluster Admin

После установки Cassandra и PHP-Thrift хочется наконец потыкать базу.

Существует web-система на PHP для администрирования базы, которая называется Cassandra-Cluster-Admin. Это не единственная система, но ей довольно удобно пользоваться.

Скачиваем, распаковываем и тыкаемся (предполагается, что у вас уже установлен web-сервер с PHP и настроены нужные хосты).

Cassandra-Cluster-Admin чем-то отдаленно напоминает phpMyAdmin, но т.к. Cassandra является NoSQL, тут для организации структуры базы используются другие понятия.

Cassandra-Cluster-Admin уже содержит в себе те же либы PHP Thrift + либы для работы с Cassandra. ХЗ какой они версии, но для работоспособности системы их хватает.

Установка Thrift для PHP

Качаем последнюю версию Thrift отсюда http://thrift.apache.org/

Куда-нибудь сохраняем, распаковываем. Для PHP оттуда понадобится только папка lib/php/src/ext/thrift_protocol. Вот ее закидываем куда-нибудь на сервер.
Для компиляции Thrift модуля PHP нужно поставить несколько пакетов:
apt-get update
apt-get install php5-dev make gcc

После установки переходим на сервере в скачаную папку с исходниками Thrift и компилируем модуль PHP:

phpize
./configure
make
make install

В файл /etc/php5/apache2/php.ini дописываем строчку

extension=thrift_protocol.so

Установка Thrift для PHP завершена.

Установка Cassandra на Debian Linux

Предполагается, что у вас голый Debian 6 с обычными репозиториями.

Добавляем в /etc/apt/sources.list строчку

deb http://debian.datastax.com/community stable main

Обновляем список пакетов (пофиг на ошибки)

apt-get update

Ставим пакеты:

apt-get install curl sun-java6-jre

Получаем ключ репозитория DataStax

curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -

Обновляем список пакетов

apt-get update

apt-get install cassandra

Если все ок, то Cassandra скорее всего запустится сама, или же можно ее запустить вручную:

service cassandra start

В консоли выведется что-то типа:

xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms251M -Xmx251M -Xmn62M -XX:+HeapDumpOnOutOfMemoryError -Xss128k

это нормально, это опции запуска.

Проверим статус работы cassandra:

service cassandra status

Cassandra is running.

Первый этап завершен.