PHP секретыИсточник: habrahabr
HBase + Thrift + PHP
Видимо так сложилось исторически, но на хабре не очень много статей о HBase, Thrift и тем более о том как их связать для работы с PHP клиентом. Давайте же ликвидируем этот пробел и пройдемся от инсталяции HBase до получения PHP клиентом примитивных данных из HBase.
ВступлениеДля тех кто не в курсе что такое HBase и Thrift, то вот краткое описание: Hbase - это open source, не реляционная, распределенная база данных созданая по аналогии с BigTable от Google и написаная на Java. Она разработана как часть проекта Hadoop (входящего в состав Apache Software Foundation) и запускается на кластере HDFS (Hadoop Distributed Filesystem), предоставляя схожие с BigTable возможности. То есть, она обеспечивает отказоустойчивый способ хранения больших объемов разреженных данных. Более подробная иформация о HBase в Википедии. Thrift - это язык описания (декларирования) интерфейсов, которые используются для описания и создания сервисов на различных языках программирования. Он используется как RPC фреймворк и был разработан Facebook. Более подробная иформация о Thrift в Википедии.
УстановкаИтак, давай те же все установим. Для начала поставим Thrift. Все устанавливать будем из исходников взятых с официального сайта. Итак Thrift: $ wget apache.strygunov.com//thrift/0.6.1/thrift-0.6.1.tar.gz После выполнения конфигурации вы должны увидеть какие языки у вас будут поддерживаться Thrift-ом: Building C++ Library ......... : no После выполнения make и make install, Thrift будет установлен и готов к использованию. Переходим к HBase. Тут все гораздо проще, все что нам надо это скачать дистрибутив, разархивировать, подправить конфиг и HBase готов к тестовому запуску. $ wget apache.infocom.ua//hbase/hbase-0.90.3/hbase-0.90.3.tar.gz Теперь надо отредактировать конфиг и добавить путь к папке в которой будет храниться база: $ vim hbase-0.90.3/conf/hbase-site.xml
После этого можно запускать HBase: $ ./hbase-0.90.3/bin/start-hbase.sh
Генерация Thrift для Hbase и тестированиеГенерация Thrift для Hbase очень проста, для этого достаточно выполнить следующую команду: $ thrift --gen php hbase-0.90.3/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift После выполнения этой команды у вас появится папка gen-php в которой будут сгенерированные клиенты на PHP для HBase. Теперь эти скрипты надо перенести в папку с PHP библиотекой для работы с Thrift. После выполнения make install, библиотека должна была быть автоматически скопированна в папку с php, для примера будем считать что это папка /usr/lib/php и в ней необходимо создать папку packages и поместить туда содержимое папки gen-php. Как видите все просто. Теперь давайте внесем тестовые данные в HBase, для этого сначала запустим shell HBase-а: hbase(main):001:0> create 'blogposts', 'post', 'image' hbase(main):002:0> put 'blogposts', 'post1', 'post:title', 'Hello World' hbase(main):007:0> get 'blogposts', 'post1'
COLUMN CELL hbase(main):008:0> exit Итак что же мы только что сделали? Во первых Итак все готово для запуска thrift сервера и создания демо клиента на PHP. Первым делом запускаем thrift сервер, без которого мы не сможем работать: // указываем путь к каталогу с Thrift библиотекой require_once( $GLOBALS['THRIFT_ROOT'].'/Thrift.php' );
require_once( $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php' ); // HBase клиент // подключаемся к thrift серверу $transport->open();
// и получаем данные из HBase print_r($client->getColumnDescriptors( 'blogposts' ));
print_r($client->getRow( 'blogposts', 'post1' ));
$transport->close();
?> Список используемой литературы: |