Hypertable 快速安装,仅需上载一个RPM包,零编译
Hypertable 快速安装,仅需下载一个RPM包,零编译
本文采用 单机安装
1. Hypertable 安装
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\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] => )