Hypertable 快速安裝,僅需下載一個RPM包,零編譯
阿新 • • 發佈:2021-06-05
本文采用 單機安裝
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\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] =>
)
轉載於:https://my.oschina.net/neochen/blog/125623