スポンサーリンク

このドキュメントの内容は、以下の通りです。

PHP で Thrift 経由で HBase のテーブルを取得してみます。

thrift によるソースコード生成


thrift コマンドで PHP 用のコードを生成します。

thrift --gen php ~/dev/hbase-0.92.1/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift

以下のファイルが生成されます。
薫 $ find gen-php
gen-php
gen-php/Hbase
gen-php/Hbase/Hbase_types.php
gen-php/Hbase/Hbase.php

gen-php/Hbase/Hbase.php の下の行をコメントアウトしてしまう。

include_once $GLOBALS['THRIFT_ROOT'].'/packages/Hbase/Hbase_types.php';

thrift の php のソースが必要なので、コピーしておきます。
cp -r /usr/ports/devel/thrift/work/thrift-0.8.0/lib/php/src .

HBase の起動


HBase を起動したあとに、 thrift 用のプロセスも起動します。

./bin/start-hbase.sh
./bin/hbase start thrift

HMaster と ThriftServer が起動します。

薫 $ jps
66321 Jps
65103 HMaster
65048 ThriftServer

テーブルの作成


./bin/hbase shell で hbase にテーブルを作成しておきます。

create 't1', 'f1'

サンプルコード


ThriftServer に接続して、テーブル名だけを取得してくるだけのプログラムです。
あらかじめ hbase shell などで create でテーブルを作成しておいてください。

<?php

$GLOBALS['THRIFT_ROOT'] = 'src/';
include 'gen-php/Hbase/Hbase_types.php';
include 'gen-php/Hbase/Hbase.php';

include 'src/transport/TSocket.php';
include 'src/transport/TBufferedTransport.php';
include 'src/protocol/TBinaryProtocol.php';

function hbase_test ()
{
	$server = 'localhost';
	$port = 9090;
	try {
		$socket = new TSocket ($server, $port);

		$transport = new TBufferedTransport ($socket);

		$protocol = new TBinaryProtocol ($transport);
		$client = new HbaseClient ($protocol);

		$transport->open ();

		$tables = $client->getTableNames ();
		var_dump ($tables);

	} catch (TException $e) {
		error_log ('TException');
		error_log ($e);
	} catch (Exception $e) {
		error_log ('Exception');
		error_log ($e);
	}
}

hbase_test ();

あわせて読む


参照しているページ (サイト内): [2012-04-04-1] [2012-04-03-1] [2012-04-02-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー