本文采用 單機安裝php
Hypertable 的幾種安裝方式linux
單機:安裝於單機,採用本地文件系統shell
Hadoop:分佈式安裝,使用Hadoop(HDFS)做爲存儲vim
MapR:分佈式安裝,在MapR之上服務器
ThriftBroker:在應用服務器上安裝ThriftBrokeapp
過程 4.1. Hypertable standalone 安裝過程分佈式
安裝 Hypertable 軟件包oop
# 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
相關的軟件會自動安裝ui
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
建立一個表
# 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
http://hypertable.com/documentation/code_examples/
設置環境變量
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\n"; 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] => )