CentOS 6.2にvSphere SDK for Perl 5.0をインストール
vSphere SDK for Perl 5.0のサポートプラットフォームはRed Hat Enterprise Linux (RHEL) 5.5ですが、CentOS 6.2(64bit)にインストールしてみました。
もちろん正式なサポートを受けることはできないと思いますが、自宅のお遊び環境であれば問題ないでしょう。
以下ページからvSphere SDK for Perl 5.0をダウンロードします。
vSphere Perl SDK - VMware {code}
まず初めに必要なパッケージを事前にインストールします。
# yum install openssl-devel # yum install perl-CPAN # yum install gcc # yum install libuuid-devel # yum install libxml2-devel
ダウンロードしたvSphere SDK for Perlを解凍します。
# tar zxvf VMware-vSphere-Perl-SDK-5.0.0-422456.x86_64.tar.gz # cd vmware-vsphere-cli-distrib
インストールにはhttp_proxyとftp_proxyの設定が必要のようですが、
私の環境ではproxyは必要なかったので取り敢えずftpproxyとhttpproxyチェック行(5515〜5518)をコメントアウトしました。
# cp -p vmware-install.pl vmware-install.pl.bak # vi vmware-install.pl 5515 # if ( !( $ftpproxy && $httpproxy)) { 5516 # uninstall_file($gInstallerMainDB); 5517 # exit 1; 5518 # }
編集後、インストールスクリプトを実行します。
# ./vmware-install.pl
ライセンスに合意するか確認があるのでyesと入力します。
Do you accept? (yes/no) yes
ライセンスに合意した後にPerl モジュールのCPANインストールが走るので少し時間がかかります。
Perlモジュールのインストールに成功するとvSphere SDK for Perlのインストールディレクトリを聞いてきます。
インストールディレクトリに特に指定が無ければ、そのままEnterキーを押下します。
In which directory do you want to install the executable files? [/usr/bin]
インストールに成功したらスクリプトをテスト実行してみましょう。
version 0.78 or newer Enjoy, --the VMware team # vmware-cmd --version vSphere SDK for Perl version: 5.0 Script 'vmware-cmd' version: 5.0
バージョン情報が正常に出力されればインストール終了です。
では早速ESXiに対してvmware-cmdを実行してみましょう。
まずESXiに対してvmware-cmdを実行する前に、SSL証明書のホスト名チェックをOFFにする必要があります。
PERL_LWP_SSL_VERIFY_HOSTNAME=0をexportしてからvmware-cmdを実行しましょう。
# export PERL_LWP_SSL_VERIFY_HOSTNAME=0 # vmware-cmd --server 192.168.1.100 --username root --password abcd1234 -l /vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxxxxxxxxxxxxxxxxx/vCenter/vCenter.vmx /vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxxxxxxxxxxxxxxxxx/vZabbix/vZabbix.vmx /vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxxxxxxxxxxxxxxxxx/vESXi5.0_1/vESXi5.0_1.vmx /vmfs/volumes/xxxxxxxx-xxxxxxxxx-xxxxxxxxxxxxxxxxxxx/vESXi5.0_2/vESXi5.0_2.vmx
ちなみに上記環境変数設定をvmware-cmdの先頭に書いてしまう手もあります。。
# vi /usr/bin/vmware-cmd #!/usr/bin/perl -w # # Copyright 2006 VMware, Inc. All rights reserved. use strict; use warnings; $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; # これ、、
Enjoy.
参考サイト
CentOS 5へVMware vSphere CLI (ver.4.1)をインストールする方法は@namikawa氏のサイトが参考になります。
インストールの参考にもさせていただきました。ありがとうございます。
LinuxにVMware vSphere CLIをインストール - id:rx7(@namikawa)の技術メモ - 技術日記
予算10万円で自作するVMwareESXi 5.0検証機
自宅でのお遊び用でVMwareESXi 5.0検証機を自作したので構成と選定のポイントメモを公開します。
仮想化支援技術(Intel)
インテルの仮想化支援技術にはIntel VT-xとIntel VT-dという2つの技術があります。
この機能により複数ゲストOSの平行動作を効率的に行うことができます。
Intel VTのH/W対応要件には以下の2項目があります。
自作する際には上記2項目に留意しパーツ選択するようにしましょう。
CPUの選択
CPUによってはVT-xやVT-dに対応していない製品もありますのでCPUを選択する際は十分注意してください。
対応情報については以下インテルサイトの「Advanced Technologies」カテゴリーに記載があります。
- インテル® Core™ i7-2600 プロセッサー (8M キャッシュ、最大 3.80 GHz) 製品仕様
- Corei7 2600はVT-d, VT-xに対応
- インテル® Core™ i7-2600K プロセッサー (8M キャッシュ、最大 3.80 GHz) 製品仕様
- Corei7 2600KはVT-dに非対応でVT-xにのみ対応
マザーボードの選択
マザーボードを選択する際にもVT-xとVT-dに対応しているか確認する必要があります。
Intelマザーボードの対応情報については以下インテルサイトを参考にしてください。
インテルサポート
その他マザーボードの対応状況については以下サイトも参考になると思います。
Superguide: Z68 Sandybridge Motherboard VT-d Test Matrix: Which Mobo/CPU combo works with VMware ESXi 4.1U1 VMDirectPath feature? | TinkerTry IT @ Home
VT-xは最近のマザーボードであれば大体対応していますが、
VT-dは殆ど対応が無い状況なのでPCIパススルーを利用される方は特に注意してください。
メモリの選択
ESXiでスワップが発生すると極端に挙動が遅くなるためメモリは出来るだけ多く搭載することをお勧めします。
私の環境では8GBメモリ x 4枚で32GB構成にしました。
ディスクの選択
IOPSを考えるとSSDにしたいところですが大容量化がコスト的に難しいので現状ではHDDを選択することになると思います。
少しでもスピードを速くしたい場合は7200rpm以上のHDDを選定するといいでしょう。
オプション:ESXi 5.0用USBメモリの選択
ESXi 5.0はHDD,SSDだけでなく、USBメモリにインストールすることも可能です。
VMイメージ用とESXi 5.0用を別ディスクにしたい場合は、USBメモリへのインストールも検討できます。
オプション:ホストキャッシュ用SSDの選択
ESXiにはメモリのオーバーコミット機能があります。
この機能により物理環境に搭載されたメモリの容量以上に各仮想マシンに対してメモリを割り当て、仮想的なスワップでコントロールすることができま す。
ESXi 5.0からメモリのオーバーコミットを支援する目的でホストキャッシュ機能が実装されました。
この機能は、SSDをハイパーバイザのメモリスワップ置き場にすることで、メモリスワップ時の速度低下を軽減させる機能です。
ホストキャッシュ機能によりメモリのオーバーコミットを行った場合でも、パフォーマンスへの影響を最小限に抑えることが出来るようです。
上記メリットがあるため搭載メモリ容量では足りないと思われる場合にはSSDのホストキャッシュ化をお勧めします。
SSD選択時は書き込み性能に注目して選定するといいでしょう。
オプション:NICの選択
オンボードNICとしてよく利用されるRealtek NIC(通称蟹)がESXi 5.0からサポートされました。
これにより大抵オンボードNICで事足りると思いますが、複数LANポート用意して遊びたいのであればNICを追加購入するといいでしょう。
NICを追加購入する場合はIntel製NICが動作報告も多くお勧めです。
今回私が組んだ構成と値段
今回予算10万程度で手近のお店を回って購入したため9.1万円程度の構成になりました。
多分最安のお店でパーツを集めれば8万円前後で構築可能だと思います。
- ケース:Scythe MONOBOX Micro 5,780円
- 電源:SILVERSTONE SST-ST50F-P (ATX 500W 80+ブロンズ) 6,980円
- 常時起動であれば80+認証電源で80+ Bronze以上を推奨です。
- マザボ:ASUS P8Z68-M PRO 10,480円
- CPU:Intel Core i7 2600 BOX (1155/3.40/8M) 23,780円
- VT-x, VT-d対応です。
- メモリ:GEIL GOC332GB1333C9QC (DDR3 PC3-10600 8GBx4) 16,970円
- HDD:HITACHI HDS723020BLA642 (2TB 7200rpm 64M) 16,480円
- スピード優先で選定しました。
- オプション:DVDドライブ:Pioneer DVR-217J 5,380円
- ESXiをインストール時に使用しました。頑張れば無くてもインストールできるようです。
- オプション:DVD-Rメディア: 2,080円
- ESXiのインストールメディア用のDVD-Rです。
- オプション:書籍: VMware徹底入門 第二版 3,654円
今回組んだESXi 5.0検証機のゲストOSでCrystalDiskMarkを動かしてみましたので参考に下記します。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
MySQL 5.5.8 GA ベンチマーク
MySQL 5.5の正式版がリリースされたようです。
次の記事で「Linux環境では読み出し/書き込みが360%、読み出しのみが200%だった。」とあったのでmysqlslapを動かしてみま した。
今回、MySQL 5.5.8とMySQL 5.1.54を比較してみました。
実行環境
さくらのVPS の標準構成で yum update を実行済みです。
# cat /etc/redhat-release CentOS release 5.5 (Final) # uname -a Linux wwwxxxxu.sakura.ne.jp 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
mysqlslapオプション
# mysqlslap --auto-generate-sql --auto-generate-sql-guid-primary\ --engine=innodb --number-int-cols=10 --number-char-cols=10\ --concurrency=20 --auto-generate-sql-write-number=10000\ --auto-generate-sql-execute-number=10000\ --auto-generate-sql-load-type=アクセスパターン -p
アクセスパターン | 内容 |
---|---|
mixed | 挿入とスキャンを半々ずつ |
read | テーブルのスキャン |
write | テーブルへの挿入 |
update | 主キーの更新 |
key | 主キーの読み取り |
実行結果(Average)
記事通り全体的に性能向上が見えます。
特にwriteが早くなっているようです。
これは「非同期IOのまとめ投げ」が効いているのでしょうか。
MySQL | mixed | read | write | update | key |
---|---|---|---|---|---|
5.1.54 | 120.344sec | 9383.116sec | 219.577sec | 281.976sec | 26.459sec |
5.5.8 | 53.374sec | 6110.888sec | 61.536sec | 96.021sec | 18.858sec |
何倍 | 2.254倍 | 1.535倍 | 3.568倍 | 2.936倍 | 1.403倍 |
重要:2010/12/20訂正
上記ベンチマークでは5.5.8でスピードが圧倒的に速くなっているように見えますが
InnoDB関係のパラメータデフォルト値が変更になっているだけでした。
- innodb_buffer_pool_size:8388608(8MB)=>134217728(128MB)
- innodb_additional_mem_pool_size:1048576(1MB)=>8388608(8MB)
- innodb_log_buffer_size:1048576(1MB)=>8388608(8MB)
今晩にでもパラメーター合わせた後のベンチマーク結果をアップします。
この点についてSH2さんからのブクマコメントで「my-large.cnfはMyISAM用の設定ファイルで、InnoDBの設定は書いてありません。このケースでは5.1⇒5.5でinnodb_buffer_pool_sizeのデフォルト値が8MBから128MBに増えた点が大きいと思います」と指摘頂きました。有難うございました。
HBase 基礎文法最速マスター
基礎文法最速マスターが流行のようなので、
便乗して勉強がてらにHBaseの基本操作について纏めてみます。
これを読めばGoogleのBigTableのクローンであるHBaseの基本操作について何となく理解できるかも?です。
他の基礎文法最速マスターと同じように簡易リファレンスを兼ねていますので足りない部分をあればご指摘ください。
HBaseは2010-02-01時点で最新のHBase0.20.3を対象としています。
インストール方法については前記事を参照ください。
対話式シェルの実行
基本
HBaseではHBase Shellという対話式シェルが提供されています。
$ hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Version: 0.20.3, r902334, Mon Jun 25 13:13:08 PDT 2010 hbase(main):001:0>
対話式シェルではコマンドを実行することにより対話的にHBaseに接続することができます。
次の例ではhelpコマンドを実行し利用できるコマンドの一覧を確認しています。
hbase(main):001:0> help HBASE SHELL COMMANDS: alter Alter column family schema; pass table name and a dictionary specifying new column family schema. Dictionaries are described below in the GENERAL NOTES section. Dictionary must include name of column family to alter. For example,
コマンドの実行結果をHBase Shellに渡して実行
パイプを使ってコマンドを渡すことによりHBase Shellを実行することもできます。
$ echo 'help' | hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Version: 0.20.3, r902334, Mon Jun 25 13:13:08 PDT 2010 help HBASE SHELL COMMANDS: alter Alter column family schema; pass table name and a dictionary specifying new column family schema. Dictionaries are described below in the GENERAL NOTES section. Dictionary must include name of column family to alter. For example,
HBase Shellの実行結果をファイルに出力することもできます。
$ echo 'help' | hbase shell > hbase_help.txt
スクリプト実行
hbase shellの引数でHBase Shellスクリプトパスを指定することで実行することもできます。
$ cat /tmp/hbase.txt help exit $ hbase shell /tmp/hbase.txt HBase Shell; enter 'help<RETURN>' for list of supported commands. Version: 0.20.3, r902334, Mon Jun 25 13:13:08 PDT 2010 help HBASE SHELL COMMANDS: alter Alter column family schema; pass table name and a dictionary specifying new column family schema. Dictionaries are described below in the GENERAL NOTES section. Dictionary must include name of column family to alter. For example,
またJRubyスクリプトパスを指定することで実行することもできます。
$ cat /tmp/scan.rb {{{c = HBaseConfiguration.new() t = HTable.new(c, "TestTable") columns = ["info:"].to_java(java.lang.String) s = t.getScanner(columns, "", "0000000003", HConstants::LATEST_TIMESTAMP).iterator() while s.hasNext() do * puts String.from_java_bytes s.next().getRow() end}}} $ hbase shell /tmp/scan.rb
HBase Shellトリック
ホームディレクトリに.irbrcというファイルを作成してHBase Shellの設定をカスタマイズすることができます。
以下の設定の場合はHBase Shellで実行したコマンドの履歴を200件保持することができます。
履歴は.irb-save-historyに記録されるためシェルを再起動しても履歴は保持されます。
HBase Shellを頻繁に再起動する場合に便利です。
$ cat ~/.irbrc require 'irb/ext/save-history' IRB.conf[:SAVE_HISTORY] = 200 IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history"
HBase基本操作 - クラスター
HBaseクラスターの情報確認
クラスターの確認を行うにはstatusコマンドを実行します。
statusコマンドは引数に'simple','summary','detailed'の3種類を指定することができ、
引数を指定しない場合は'summary'が表示されます。
hbase(main):001:0> status 1 servers, 0 dead, 3.0000 average load hbase(main):002:0> statsu 'simple' 1 live servers TAKAO-NOTE:3398 1265196434625 requests=0, regions=3, usedHeap=22, maxHeap=996 0 dead servers hbase(main):003:0> status 'summary' 1 servers, 0 dead, 3.0000 average load hbase(main):004:0> status 'detailed' version 0.20.3 0 regionsInTransition 1 live servers TAKAO-NOTE:3398 1265196434625 requests=0, regions=3, usedHeap=24, maxHeap=996 .META.,,1 stores=2, storefiles=3, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0 test,,1265160603921 stores=1, storefiles=1, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0 -ROOT-,,0 stores=1, storefiles=2, storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0 0 dead servers
HBase基本操作 - Tableの操作
MySQLを比較対照としてHBase Shellの基本操作を記述します。
HBaseではテーブルの有効/無効の考え方があり、alterやdrop操作はテーブル無効後に行います。
Tableの作成
- HBase Shell
create 'City', {NAME=>'ID'}, {NAME=>'Name'}, {NAME=>'CountryCode'}, {NAME=>'Population'}
CREATE TABLE City ( ID int(11) NOT NULL auto_increment, Name char(35) NOT NULL default '', CountryCode char(3) NOT NULL default '', Population int(11) NOT NULL default '0', PRIMARY KEY (ID) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Tableの無効化(HBase独自)
hbase(main):071:0> disable 'City' 0 row(s) in 5.0620 seconds
Tableの有効化(HBase独自)
hbase(main):072:0> enable 'City' 0 row(s) in 0.0160 seconds
Tableの存在確認(HBase独自)
hbase(main):070:0> exists 'City' true 1 row(s) in 0.0000 seconds
Tableの情報表示(HBase独自)
hbase(main):074:0> describe 'City' DESCRIPTION ENABLED {NAME => 'City', FAMILIES => [{NAME => 'CountryCode', VERSIONS => '3', true COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_ MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'ID', VERSIONS => ' 3', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'Name', VERSIONS => '3', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '655 36', IN_MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'Population ', VERSIONS => '3', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKS IZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]} 1 row(s) in 0.0320 seconds
Tableのカラム追加
- HBase Shell
disable 'City' alter 'City', {NAME=>'District'} enable 'City'
ALTER TABLE City ADD District char(20);
Tableのカラム削除
- HBase Shell
disable 'City' alter 'City', {NAME=>'District', METHOD=>'delete'} enable 'City'
ALTER TABLE City DROP District;
HBase基本操作 - データの操作
データの挿入
IDがindexになるようにデータを挿入しています。
- HBase
put 'City', '1', 'ID', '1' put 'City', '1', 'Name', 'Kabul' put 'City', '1', 'CountryCode', 'AFG' put 'City', '1', 'Population', '1780000' put 'City', '2', 'ID', '2' put 'City', '2', 'Name', 'Qandahar' put 'City', '2', 'CountryCode', 'AFG' put 'City', '2', 'Population', '237500' put 'City', '3', 'ID', '3' put 'City', '3', 'Name', 'Herat' put 'City', '3', 'CountryCode', 'AFG' put 'City', '3', 'Population', '186800'
INSERT INTO City VALUES (1, 'Kabul', 'AFG', 1780000); INSERT INTO City VALUES (2,'Qandahar','AFG', 237500); INSERT INTO City VALUES (3,'Herat','AFG', 186800);
データの検索(全て)
- HBase
hbase(main):051:0> scan 'City' ROW COLUMN+CELL 1 column=CountryCode:, timestamp=1265205866562, value=AFG 1 column=ID:, timestamp=1265205853640, value=1 1 column=Name:, timestamp=1265205860375, value=Kabul 1 column=Population:, timestamp=1265205872140, value=1780000 2 column=CountryCode:, timestamp=1265207385421, value=AFG 2 column=ID:, timestamp=1265207385390, value=2 2 column=Name:, timestamp=1265207385390, value=Qandahar 2 column=Population:, timestamp=1265207385421, value=237500 3 column=CountryCode:, timestamp=1265207385453, value=AFG 3 column=ID:, timestamp=1265207385437, value=3 3 column=Name:, timestamp=1265207385437, value=Herat 3 column=Population:, timestamp=1265207385468, value=186800 3 row(s) in 0.0310 seconds
SELECT * FROM City;
データの検索(範囲指定)
- HBase
hbase(main):050:0> scan 'City', {STARTROW => '1', STOPROW => '3'} ROW COLUMN+CELL 1 column=CountryCode:, timestamp=1265205866562, value=AFG 1 column=ID:, timestamp=1265205853640, value=1 1 column=Name:, timestamp=1265205860375, value=Kabul 1 column=Population:, timestamp=1265205872140, value=1780000 2 column=CountryCode:, timestamp=1265207385421, value=AFG 2 column=ID:, timestamp=1265207385390, value=2 2 column=Name:, timestamp=1265207385390, value=Qandahar 2 column=Population:, timestamp=1265207385421, value=237500 2 row(s) in 0.0310 seconds
SELECT * FROM City WHERE ID between 1 and 2;
データの検索(列全て)
- HBase
hbase(main):019:0> get 'City', '2' COLUMN CELL CountryCode: timestamp=1265206057406, value=AFG ID: timestamp=1265206057375, value=2 Name: timestamp=1265206057390, value=Qandahar Population: timestamp=1265206058359, value=237500 4 row(s) in 0.0160 seconds
SELECT * FROM City WHERE ID = 2;
データの検索(列指定)
- HBase
hbase(main):022:0> get 'City', '2', {COLUMN => 'Name'} COLUMN CELL Name: timestamp=1265206057390, value=Qandahar 1 row(s) in 0.0150 seconds
SELECT Name FROM City WHERE ID = 2;
最後に
さて、ここまででHBase Shellの基本操作を勉強しました。
RDB使いの皆さんはRDBと操作が違ってメンドクセと思われたかもしれません。
上記では時間の都合で取り上げませんでしたがHadoopはデータを2次元の表ではなく多次元で持ちます。
(時間が出来たら追記します。。)
実はここまで読ませておきながら何なんですが・・・
HadoopにはRDBのようなSQLライクにMapReduce操作ができるHiveという別プロダクトがあります。
HiveはFacebookが開発を始めたプロダクトで
2008年12月に正式にHadoopプロジェクトにcontributeされました。
その他にも色々なプロジェクトがありますので興味がありましたら調べて頂ければと思います。
Cygwinを利用してWindowsにHBaseをインストール
HBaseは列指向DBMSで大規模分散処理に特化しているDBMSです。
大規模なデータ容量になってもパフォーマンスの劣化がおきにくいのが特徴で、
次世代のデータベースとして注目されています。
ここではHBaseをWindowsXPマシンにインストールする方法について記述します。
RDBMSとHBaseの違いをお手軽に?確認したいという方にお勧めです。
環境
HBaseをWindowsで利用するにはJDK6/Cygwin/SSHサービスが必要となります。
環境は2010-02-01時点の最新バイナリを利用しました。
- WindowsXP Professional SP2
- HBase-0.20.3
- JDK 6 Update 18
- Cygwin 1.7.1,OpenSSH_5.3p1
Cygwinインストール
ここではCygwinのRootとLocal Packageを以下のように設定する前提で書きます。
それではCygwinをインストールしてみます。
- Local Packageディレクトリ(C:\cygwin\setup)を作成します。
- http://cygwin.com/setup.exeをC:\cygwin\setupディレクトリへダウンロードします。
- Administrator権限を持つユーザでsetup.exeをダブルクリックしインストールを開始します。
- "Choose A Download Source"ではInstall from Intarnetを選択します。
- "Select Root Install Directory"のRoot DirectoryではC:\cygwin\rootを設定します。
- "Select Local Package Directory"のLocal Package DirectoryではC:\cygwin\setupを設定します。
- "Select Your Internet Connection"ではDirect Connectionを選択します。
- "Choose A Download Site"ではjpドメインのサイトを選択します。
- "Select Packages"では追加パッケージを選択せずにインストールを行います。
- "Create Icons"では必要に応じてチェックを行いインストールを完了します。
- システム環境変数CYGWIN_HOMEを作成しC:\cygwin\rootを設定します。
- システム環境変数PATHに%CYGWIN_HOME%\binを追加します。
- Cygwinのインストールを完了するためにOSをリブートします。
SSH設定
- Cygwinを起動します。
- Cygwinで以下コマンドを実行し環境の適正化を行います。
- chmod +r /etc/passwd
- chmod u+w /etc/passwd
- chmod +r /etc/group
- chmod u+w /etc/group
- chmod 755 /var
- Cygwinで以下コマンドを実行しsshdの設定ファイルを作成します。
- ssh-host-config -y
- Cygwinで以下コマンドを実行しsshサービスを起動します。
- cygrunsrv -S sshd
- Cygwinで以下コマンドを実行しWindowsのアカウントをCygwinに同期します。
- mkpasswd -cl > /etc/passwd
- mkgroup -local > /etc/group
- Cygwinで必要に応じて以下コマンドを実行しノーパスワードで接続できるようにします。
- 念のため以下コマンドで動作確認します。
Javaインストール
http://java.sun.com/javase/ja/6/download.htmlからJDK1.6をダウンロードしてインストールします。
ここではJavaを以下のディレクトリにインストールします。
Java設定
HBaseインストール
- http://www.apache.org/dyn/closer.cgi/hadoop/hbase/からHBaseをダウンロードします。
- hbase-0.20.3.tar.gzを解凍ソフトを使って解凍します。
- 解凍したファイルをC:\cygwin\root\usr\local\以下に配置し、Cygwinから/usr/local/hbase-
で接続できるようにします。
HBase設定
- /uar/local/hbase-0.20.3/conf/hbase-env.shに追記します。
- export JAVA_HOME=/usr/local/jdk1.6.0_18
- export HBASE_IDENT_STRING=$HOSTNAME
- /usr/local/hbase-0.20.3/conf/hbase-default.xmlを編集します。
- Cygwinで以下コマンドを実行しhbase.rootdirとhbase.tmp.dirのディレクトリを作成します。
- mkdir -p /tmp/hbase/data
- mkdir -p /tmp/hbase/tmp
- chmod 777 /tmp/hbase/data
- chmod 777 /tmp/hbase/tmp
HBase動作テスト
- Cygwinを起動します。
- Cygwinで以下コマンドを実行しHBaseを起動します。
- cd /usr/local/hbase-0.20.3/
- ./bin/start-hbase.sh
- Cygwinで以下コマンドを実行しhbase shellを起動します。
- ./bin/hbase shell
- hbase shellで以下コマンドを実行しコマンドを確認します。
- help
- hbase shellで以下コマンドを実行しテーブルを作成します。
- create 'test', 'data'
- hbase shellで以下コマンドを実行しテーブルを確認します。
- list
- hbase shellで以下コマンドを実行しデータを挿入します。
- put 'test', 'row1', 'data:1', 'value1'
- put 'test', 'row2', 'data:2', 'value2'
- put 'test', 'row3', 'data:3', 'value3'
- hbase shellで以下コマンドを実行しデータが表示されればテスト成功です。
- scan 'test'
- hbase shellで以下コマンドを実行しテーブルを削除します。
- disable 'test'
- drop 'test'
- hbase shellで以下コマンドを実行しhbase shellを終了します。
- exit
- Cygwinで以下コマンドを実行しHBaseを停止します。
- cd /usr/local/hbase-0.20.3/
- ./bin/stop-hbase.sh
HBase REST動作テスト
- Cygwinを起動します。
- Cygwinで以下コマンドを実行しHBaseを起動します。
- cd /usr/local/hbase-0.20.3/
- ./bin/start-hbase.sh
- Cygwinで以下コマンドを実行しhbase shellを起動します。
- ./bin/hbase shell
- hbase shellで以下コマンドを実行しテーブルを作成します。
- create 'test', 'data'
- hbase shellで以下コマンドを実行しデータを挿入します。
- put 'test', 'row1', 'data:1', 'value1'
- put 'test', 'row2', 'data:2', 'value2'
- put 'test', 'row3', 'data:3', 'value3'
- hbase shellで以下コマンドを実行しhbase shellを終了します。
- exit
- Cygwinで以下コマンドを実行しHBaseのRESTサービスを起動します。
- ./bin/hbase-daemon.sh start rest
- ブラウザで以下のURLに接続し作成したtestテーブルが表示されればテスト成功です。
- CygwinでC以下コマンドを実行しHBaseのRESTサービスを停止します。
- ./bin/hbase-daemon.sh stop rest
- Cygwinで以下コマンドを実行しHBaseを停止します。
- ./bin/stop-hbase.sh
データベース全体の1パーセントをSSDに移行し最大50パーセントの"データ取込"速度向上!
あけましておめでとうございます。
前回以下のエントリーを書いたわけですが無事に高速化に成功しました。
- SSDによるデータベース高速化
レイテンシが低くIOPS性能が高いのは大きな強みですね。
機会があればどこかで話せたらと思います。
Informix最新動向セミナー'09 Autumn
IBMさん主催のInformixのセミナーに参加してきました。
場所:IBM本社(箱崎)
日時:2009/11/27 セミナー14:00-17:00 & 懇親会19:00-22:00
・コミュニティ広場がオープンしたよ
http://www.ibm.com/developerworks/forums/forum.jspa?forumID=1638
・CISCOのUnified Call ManagerでInformixが採用されてる
http://www.youtube.com/watch?v=HjHTqIQCaaM
=>8万サイトで稼動中
=>Informixをブラックボックスとして利用
=>アラーム機能を使って全自動復旧のメカニズムを実現
・Informix11.50へのアップグレードは簡単
・InformixのアップグレードよりOSの移行のほうが大変
・ヤマハ発動機さんはワールドワイドシステムをInformixで組んでる
・HDRはactive、active、activeで使えるのでいい
ただオプティマイザ等は分散するけど最終的なIOはprimaryサーバーで行う
参照系がメインのWebアプリだと使える
・OracleRACのようなシェアードディスクタイプのクラスタ(SDS)も結構いいらしい