2010年8月24日火曜日

CassandraとHBaseを比較して入門するNoSQL

第10回Cassandra勉強会で発表したスライドに、勉強会後に頂いたフィードバックを反映した物をSlideshareにUPしますた

2010年8月6日金曜日

Cassandra0.6.4の問題

■発生時
急激な書込処理を行う。
恐らく性能不足の為に書込処理が間に合わず、大量のassandraのCommitLogが発生。
続いて何らかの理由によりCassandra Cluster停止。再度Cassandra Nodeの起動を試みた所でOOMEが発生。

■原因予測
Source Levelではまだ未確認だが、恐らく起動時にCommitLogを全てMemoryに乗せようとしている?
その為にOOMEが発生している可能性がある。

■対応策
取り敢えずCommitLogのフォルダの中身を別に退避させてから起動を試みると問題なく起動する。
この為、退避したCommitLogを少量ずつ本来のフォルダに起いて再起動を繰り返す事で徐々にCommitLogを適用しつつデータの復旧を行う。

■調査する事
・現在のCassandra Clusterでの許容書込速度
・起動時にCommitLogの一斉読込を回避する方法
・CommitLogをファイル単位で適用する方法

Cassandraは起動時が非常に弱い。何らかの予防策対応策を準備する必要がある。
https://issues.apache.org/jira/browse/CASSANDRA-1014

2010年8月2日月曜日

新規ユーザのレジストリに事前に値を入れる

Windowsで新規にユーザを作成した際に、そのユーザのユーザレジストリに対して事前に何らかの値を入れる方法。
本来であればデフォルトユーザに登録すればOKなんだろうけど、何故か巧く行かないので強硬手段を模索してみる。

参考:2005-01-13■[WindowsXP]プロファイルの場所を無理矢理変更する
上記サイトに書いてある下記手段を持ちいる。

1. レジストリエディタを開き、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList\
まで移動する。
2. 既にあるユーザ用のレジストリキーをエクスポートし、適当な名前で保存する。
3. エクスポート元のキーの名前を、新しいユーザに割り当てられるであろうSIDに変更する。
4. その下のSIDの値のどこかに1を足す。(どこに1を足したらいいかは忘れた。)
5. 同じくProfileImagePathの値をこちらの指定するパスに変更する。
6. 最後にエクスポートしたレジストリキーをインポートする。

が、肝心の1を足す場所が解らない。という事で適当にユーザを複数作ってみて、Exportしたファイルを比較してみる。

見てみたら値が次の様に違う
■ProfileImagePath
1004ユーザ・・・末尾が 31,00,00,00
1005ユーザ・・・末尾が 32,00,00,00
■Sid
1004ユーザ・・・末尾が ec,03,00,00
1005ユーザ・・・末尾が ed,03,00,00

という具合に違う。画像は堂でも良いのでSIDの値の後ろから4つ目の値を増やせば良さそう。

これは良いスライド

2010年8月1日日曜日

今月の買い物

7月の収穫
7月 2日 (金)サマーウォーズ3巻、屍鬼8巻、屍鬼ビジュアルワークス、紅5巻
7月 7日 (水)アルトネリコ ビジュアルブック 蒼天楽土、大規模サービス技術入門
7月 9日 (金)3×3EYES 23巻/24巻
7月 12日 (月)一年生になっちゃったら6、風の谷のナウシカ [Blu-ray]
7月 14日 (水)亂世エロイカ/ALI PROJECT
7月 17日 (土)されど罪人は竜と踊る9巻
7月 28日 (水)ン・ダグバ・ゼバ

8月以後の予定
8月 5日 (木)Googleクラウドの核心
8月 6日 (金)BLEACH-ブリーチ-46巻
8月 10日 (火)ヴァルプルギスの後悔 Fire3
8月 12日 (木)九十九眠るしずめ 東之巻 1巻
8月 18日 (水)月光条例 10巻
8月 25日 (水)DIO(覚醒版)、「アルトネリコ3世界終焉の引鉄は少女の詩が弾く」sideフィンネル~After story~、刀と鞘/ALI PROJECT
8月 27日 (金)ファムファタル3巻、ポケットモンスタースペシャル36巻、第三世代kindle
9月 1日 (水)くちづけ/BUCK-TICK
9月 15日 (水)リボルテック ジェノブレイカー
9月 18日 (土)ポケモン白黒
9月 29日 (水)謳う丘/志方あきこ、汎新日本主義/ALI PROJECT
10月 25日 (月)figma 巡音ルカ
11月 20日 (土)スペリオルクロニクル

2010年7月8日木曜日

ルイーダの酒場で学ぶOracle、HBase、Cassandraの違い

ルイーダの店 = データベース
旅人 = データ
勇者 = クライアント(APサーバなど)

■ルイーダの酒場 Oracleバージョン
世界に一店舗だけある巨大な酒場。
世界中から旅人が集まり、転職歴や力、素早さ、運の良さ、レベル、倒してきた敵等、その旅人が持つあらゆる情報で探し出す事が出来る。
仲間を捜す時は、ほしい仲間の条件を店主に言えば、条件に見合う旅人を連れてきてくれる。基本的に店主はどんなに複雑で難しい条件でも健気に探し出してきてくれる。
がしかし、店主自らが探しに行く為、あまりに条件が複雑過ぎると探すのに時間がかかってしまうので、運悪く自分よりも前の勇者が店主に複雑な条件を提示してしまうと、窓口に長蛇の列が出来てしまい待たされる事もある。

■ルイーダの酒場 HBaseバージョン
とある街に本社を置き、世界中に支店を持つ酒場である。
旅人がここの酒場に登録する際にID作る必要がある。ほとんどの場合自分が探してもらいやすい様に力や素早さなど自分のステータスを羅列した登録番号を作る事が多い。
また旅人を捜す時は基本的にその旅人の登録番号を指定するか、登録番号の範囲を指定する事でしか探し出すことができない。自分がほしい旅人の条件に見合っているかは、一度呼び出してもらってから自分で確かめる必要がある。
各支店には所属すべき登録番号の範囲が決められている為、登録した旅人達は自分登録番号に従い、自分が待機しているべき支店に移動して待機する事になる。本社は常に各支店にいる旅人達の数を把握しており、各支店がほぼ同じ人数の旅人を抱える様に各支店の担当登録番号の範囲を調整し、各支店に伝えている。
自分が所属すべき支店が変わった旅人達、あるいは所属している支店が魔物に襲われて破壊されてしまった場合は、その足で新しい所属支店へと移動する必要がある。
その為に例えば新しい所属支店において、勇者がとある旅人を指名したとしてもその旅人が新しい支店にたどり着かない限り、その勇者は酒場で待ち続けなければならない。(可用性の犠牲)
旅人を捜す窓口は各お店に一つしかないが、お店がたくさんある上、登録番号毎に分かれている為、同時に何人もの勇者が、旅人を捜す事が出来る。

■ルイーダの酒場 Cassandraバージョン
世界中に支店を持つが、本社を持っていない。その為に書く支店間で常に連絡を取り情報共有を行っている。
こちらも旅人は登録する際に登録番号を生成し所属する支店を決める。が、それに加えて登録が終わると即座にその人のクローンを二人ほど作り上げ、本人とは別の店舗に配置しておく。更にこのクローンの作成を定期的に行い、新しいクローンが届いた支店では古いクローンと交換している。
とある旅人を探しに店を訪れた勇者がいたが、その旅人はこの支店ではなく、別の支店にいる事がわかった。が更に運悪くその探している旅人が所属している支店が魔物に破壊されている事がわかった。その様な時はすぐにクローンが所属している支店に移動し、そのクローンをつれてすぐに勇者は旅立つ事が出来る。
が、せっかくレベルアップしたのに複製を作る前に所属支店をなくしてしまった旅人を指名した勇者は、レベルアップ前の状態のクローンをつれて旅立たねばならなくなる。(一貫性の犠牲)
旅人を捜す窓口は各お店に一つしかないが、お店がたくさんあるので、同時に何人もの勇者が、旅人を捜す事が出来る。

2010年7月2日金曜日

6月の収穫

■6月の収穫
6月 4日 (金) BLEACH45巻、 テガミバチ 10
6月 8日 (火) 範馬刃牙 24
6月 11日 (金) 3×3EYES 21/22、 GIRL FRIENDS(4)
6月 12日 (土) S.H.フィギュアーツ 仮面ライダークウガ アルティメットフォーム
6月 18日 (金) あきそら 4
6月 23日 (水) ドラマCD「アルトネリコ3世界終焉の引鉄は少女の詩が弾く」side 咲 ~After Story~
6月 25日 (金) ストレンジ・プラス 10、 セキレイ 10

■7月以後の予定
7月 2日 (金) 屍鬼 8、 屍鬼ビジュアルワークス、 紅 5
7月 4日 (日) サマーウォーズ (3)
7月 7日 (水) アルトネリコ ビジュアルブック 蒼天楽土、 大規模サービス技術入門
7月 9日 (金) 3×3EYES 23/24
7月 12日 (月) 一年生になっちゃったら (6)
7月 14日 (水) ALI PROJECT/タイトル未定 PSP用ゲーム『フェイト/エクストラ』主題歌、 風の谷のナウシカ [Blu-ray]
7月 17日 (土) されど罪人はされど罪人は竜と踊る9
7月 25日 (日) ン・ダグバ・ゼバ
8月 18日 (水) 月光条例 10
8月 25日 (水) DIO(覚醒版)、 ドラマCD「アルトネリコ3世界終焉の引鉄は少女の詩が弾く」sideフィンネル~After story~
9月 9日 (木) 未来日記11 プレミアムアニメDVD付き限定版
9月 29日 (水) 汎新日本主義/ALI PROJECT
10月 25日 (月) figma 巡音ルカ

2010年6月28日月曜日

HBase0.89.20100621を入れてみた。

どうも接続方法が変わったのか、何か変更があったご様子。
取り敢えず下記のように変更したら繋がった


import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HTable;

public class HBaseNewConnector {
private Configuration conf;
private HTable hTable;

public void run() {
this.conf = new Configuration();
this.conf.set("hbase.zookeeper.quorum", "192.168.0.2"); ←取り敢えずMasterのIP
this.conf.set("hbase.zookeeper.property.clientPort", "2181");
try {
this.hTable = new HTable(this.conf, "Pokemon");
} catch (IOException e) {
e.printStackTrace();
}
try {
this.hTable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

2010年6月23日水曜日

恐ろしく以前にかいた小話転載

■PC、購入。
「パパーパソコンほしいー。」
「ハハーコイツメ-。今作るからまってなさい」
TVの電源を入れて、ネットに接続。そこで新規ID作成を行う。
ID作成完了
「はい。これでOK。」
「わーい!ありがとーパパ-」
といって子供は自分の部屋に行き、TVを付けて先程作ったIDでログインする。するとそこにはよくあるデスクトップ画面が表示される。

■携帯、購入。そして落とす。
携帯電話を購入し、電源を入れる。するとそこにはログイン画面。
普段使っているIDでログインする。するとPCで作ったアドレス帳を利用してメールや電話がかけられる。
とある日、携帯を落としてしまった。しかも運悪くログインしっぱなしだ。
とある悪意のある人がその携帯を拾い上げ、アドレス帳を見ようとした。
が、即座に携帯にロックがかかり,使えなくなった。
実は携帯にはセンサーが多数取り付けられており、手の温度分布、キーを押す強さ、リズム等を取得して送信。そしてサーバ側の方で過去の統計情報と比較し本人でない事が確認されたのでロックがかかった。

■給油
ガソリンを入れにきた。
早速ガソリンを入れる為にノズルに手を握る。
すると即座に指紋認証が行われ、画面に名前と車種が表示される。
続いて過去の給油履歴と最終給油時のガソリン量、その後の走行距離から給油すべき量が表示され、さらに価格も表示される。
それを確認後、ノズルを車に指し、給油。
終わると即、電子マネー支払いが行われ、給油履歴が更新される。
さらに過去の走行情報や給油間隔などの統計情報を元に、次に給油するであろう日付が通知される。

2010年6月22日火曜日

Ubuntu10.04でJava

手動でRepository追加
vi /etc/apt/sources.list
deb http://archive.canonical.com/ lucid partner

自動Repository追加コマンドを入れる
sudo apt-get install python-software-properties
sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'

SunJAVAを入れる。
sudo apt-get update
sudo aptitude install sun-java6-jdk