Hypertableクイックインストール、RPMパッケージをダウンロードするだけで、ゼロコンパイル
11392 ワード
本論文では単機実装を採用する
1.Hypertableインストール
Hypertableのいくつかのインストール方法
スタンドアロン:スタンドアロンにインストールされ、ローカルファイルシステムを採用
Hadoop:分散型インストール、Hadoop(HDFS)をストレージとして使用
MapR:分散インストール、MapR上
ThriftBroker:アプリケーションサーバにThriftBrokeをインストールする
1.1.Hypertable standaloneスタンドアロンインストール
プロセス4.1.Hypertable standaloneインストール手順
Hypertableパッケージのインストール
Hypertableを起動
テーブルの作成
いくつかのデータを挿入
データの問合せ
すべてのテーブルで次のコマンドを実行することを理解したい場合は
2. Code examples
http://hypertable.com/documentation/code_examples/
2.1. PHP
環境変数の設定
PHP環境のインストール
テストファイルの作成
テストプログラムの実行
1.Hypertableインストール
Hypertableのいくつかのインストール方法
スタンドアロン:スタンドアロンにインストールされ、ローカルファイルシステムを採用
Hadoop:分散型インストール、Hadoop(HDFS)をストレージとして使用
MapR:分散インストール、MapR上
ThriftBroker:アプリケーションサーバにThriftBrokeをインストールする
1.1.Hypertable standaloneスタンドアロンインストール
プロセス4.1.Hypertable standaloneインストール手順
Hypertableパッケージのインストール
# cd /usr/local/src/
# wget http://cdn.hypertable.com/packages/0.9.7.0/hypertable-0.9.7.0-linux-x86_64.rpm
Hypertableをインストールします.個人的にはyum localinstallを使うのが好きです.彼はソフトウェア間の依存関係を解決します.# yum localinstall hypertable-0.9.7.0-linux-x86_64.rpm
関連するソフトウェアは自動的にインストールされます.Dependencies Resolved
====================================================================================================================
Package Arch Version Repository Size
====================================================================================================================
Installing:
hypertable x86_64 0.9.7.0-1 /hypertable-0.9.7.0-linux-x86_64 288 M
Installing for dependencies:
mailcap noarch 2.1.31-2.el6 base 27 k
perl-Bit-Vector x86_64 7.1-2.el6 base 169 k
perl-Carp-Clan noarch 6.03-2.el6 base 25 k
perl-Compress-Raw-Zlib x86_64 1:2.020-127.el6 base 68 k
perl-Compress-Zlib x86_64 2.020-127.el6 base 43 k
perl-HTML-Parser x86_64 3.64-2.el6 base 109 k
perl-HTML-Tagset noarch 3.20-4.el6 base 17 k
perl-IO-Compress-Base x86_64 2.020-127.el6 base 67 k
perl-IO-Compress-Zlib x86_64 2.020-127.el6 base 134 k
perl-IO-String noarch 1.08-9.el6 base 15 k
perl-URI noarch 1.40-2.el6 base 117 k
perl-libwww-perl noarch 5.833-2.el6 base 387 k
Transaction Summary
====================================================================================================================
Install 13 Package(s)
Hypertableのデフォルトは/opt/hypertable/0.9.7.0バックアッププロファイルにインストールされています.# cd /opt/hypertable/0.9.7.0/conf
# cp hypertable.cfg hypertable.cfg.original
FHS-IZE取付# bin/fhsize.sh
Setting up /var/opt/hypertable
Setting up /etc/opt/hypertable
fshize /opt/hypertable/0.9.7.0: success
デザイン「CURRENT」接続# cd /opt/hypertable
# ln -s 0.9.7.0 current
インストールnotification-hook.shスクリプト# cp conf/notification-hook.tmpl conf/notification-hook.sh
# chmod o+x conf/notification-hook.sh
notification-hook.shスクリプト/opt/hypertable/current/conf/notification-hook.sh "Test Message" "This is a test."
Hypertableを起動
# /opt/hypertable/current/bin/start-all-servers.sh local
DFS broker: available file descriptors: 1024
Started DFS Broker (local)
Started Hyperspace
Started Hypertable.Master
/proc/sys/vm/swappiness = 60
Started Hypertable.RangeServer
Started ThriftBroker
# /opt/hypertable/current/bin/ht shell
Welcome to the hypertable command interpreter.
For information about Hypertable, visit http://hypertable.com
Type 'help' for a list of commands, or 'help shell' for a
list of shell meta commands.
hypertable>
インストールが有効かテスト
# /opt/hypertable/current/bin/ht shell
Welcome to the hypertable command interpreter.
For information about Hypertable, visit http://hypertable.com
Type 'help' for a list of commands, or 'help shell' for a
list of shell meta commands.
hypertable> help
USE ................ Sets the current namespace
CREATE NAMESPACE ... Creates a new namespace
DROP NAMESPACE ..... Removes a namespace
EXISTS TABLE ....... Check if table exists
CREATE TABLE ....... Creates a table
DELETE ............. Deletes all or part of a row from a table
DESCRIBE TABLE ..... Displays a table's schema
DROP TABLE ......... Removes a table
RENAME TABLE ....... Renames a table
DUMP TABLE ......... Create efficient backup file
ALTER TABLE ........ Add/remove column family from existing table
INSERT ............. Inserts data into a table
LOAD DATA INFILE ... Loads data from a TSV input file into a table
SELECT ............. Selects (and display) cells from a table
SHOW CREATE TABLE .. Displays CREATE TABLE command used to create table
SHOW TABLES ........ Displays only the list of tables in the current namespace
GET LISTING ........ Displays the list of tables and namespace in the current namespace
Statements must be terminated with ';'. For more information on
a specific statement, type 'help <statement>', where <statement> is from
the preceding list.
hypertable>quit
Hypertableを停止下記コマンドを実行Hypertableを停止$ /opt/hypertable/current/bin/stop-servers.sh
1.5.インストレーションの確認テーブルの作成
# echo "USE '/'; CREATE TABLE foo ( c1, c2 ); GET LISTING;" \
> | /opt/hypertable/current/bin/ht shell --batch
foo
sys (namespace)
tmp (namespace)
いくつかのデータを挿入
# echo "USE '/'; INSERT INTO foo VALUES('001', 'c1', 'very'), \
> ('000', 'c1', 'Hypertable'), ('001', 'c2', 'easy'), ('000', 'c2', 'is');" \
> | /opt/hypertable/current/bin/ht shell --batch
データの問合せ
# echo "USE '/'; SELECT * FROM foo;" \
> | /opt/hypertable/current/bin/ht shell --batch
000 c1 Hypertable
000 c2 is
001 c1 very
001 c2 easy
すべてのテーブルで次のコマンドを実行することを理解したい場合は
$ /opt/hypertable/current/bin/stop-servers.sh
$ /opt/hypertable/current/bin/clean-database.sh
2. Code examples
http://hypertable.com/documentation/code_examples/
2.1. PHP
環境変数の設定
export PHPTHRIFT_ROOT=/opt/hypertable/current/lib/php
PHP環境のインストール
# yum install php-cli
テストファイルの作成
# vim lib/php/test.php
<?php
if (!isset($GLOBALS['THRIFT_ROOT']))
$GLOBALS['THRIFT_ROOT'] = getenv('PHPTHRIFT_ROOT');
require_once dirname(__FILE__).'/ThriftClient.php';
$client = new Hypertable_ThriftClient("localhost", 38080);
$namespace = $client->namespace_open("");
echo "HQL examples
";
print_r($client->hql_query($namespace, "show tables"));
print_r($client->hql_query($namespace, "select * from foo"));
テストプログラムの実行
# php lib/php/test.php
HQL examples
Hypertable_ThriftGen_HqlResult Object
(
[results] => Array
(
[0] => foo
)
[cells] =>
[scanner] =>
[mutator] =>
)
Hypertable_ThriftGen_HqlResult Object
(
[results] =>
[cells] => Array
(
[0] => Hypertable_ThriftGen_Cell Object
(
[key] => Hypertable_ThriftGen_Key Object
(
[row] => 000
[column_family] => c1
[column_qualifier] =>
[timestamp] => 1361518099519878001
[revision] => 1361518099519878001
[flag] => 255
)
[value] => Hypertable
)
[1] => Hypertable_ThriftGen_Cell Object
(
[key] => Hypertable_ThriftGen_Key Object
(
[row] => 000
[column_family] => c2
[column_qualifier] =>
[timestamp] => 1361518099519878002
[revision] => 1361518099519878002
[flag] => 255
)
[value] => is
)
[2] => Hypertable_ThriftGen_Cell Object
(
[key] => Hypertable_ThriftGen_Key Object
(
[row] => 001
[column_family] => c1
[column_qualifier] =>
[timestamp] => 1361518099519878003
[revision] => 1361518099519878003
[flag] => 255
)
[value] => very
)
[3] => Hypertable_ThriftGen_Cell Object
(
[key] => Hypertable_ThriftGen_Key Object
(
[row] => 001
[column_family] => c2
[column_qualifier] =>
[timestamp] => 1361518099519878004
[revision] => 1361518099519878004
[flag] => 255
)
[value] => easy
)
)
[scanner] =>
[mutator] =>
)