2010-01-01から1年間の記事一覧
Hadoop Tutorialでよく見かけるWordCountを試してみました. なかなか動かず,あれこれ修正してようやく何とかなりました. Hadoopのバージョンによって,継承すべきクラスとか引数の型が異なるみたい. MapperとReducer 今回は,バージョン0.20.2+737で動作…
Hadoop Streamingでもつまづいては修正し,再びつまづいては修正しの繰り返しでした. 今回も,これ以上犠牲者を増やさないためのメモ3つ. Streaming Command Failed!で落ちる まず,Mapper,Reducerは絶対パスで指定する必要があります. # ×:相対パスだと…
Hadoop Streamingは標準入出力さえ扱えれば,他の言語でもMapReduceが実現できるようにする仕組みです. じゃあ,実際どうなの?ということで,Rubyを例にPi計算をしてみました. 事前準備 と言ってもHadoopがインストールされていれば,Rubyをインストールす…
ちょっと前にkvmclone.plのエントリを書きました. そこでも触れたのですが,HadoopのdatanodeにはstorageIDというものがあり,ノード固有の値が割り当てられています. このstorageIDが重複すると,重複した片方が停止するようになっており,単に複製しても…
ネタとして作ってみた.エンジニアならこのランキングの方がピンとくるかも. scrapeして,sortして...結構大変だった. Windows XPの起動時の長いディスクアクセスは、Windows Updateの履歴が溜まりすぎていたせいだった?! - 全力HP 3650users 使いやすく…
前エントリの完全分散モードでの動作ですが,実はすんなりとは行かず,何日も苦しみました. ググっては試し,ググっては試し,の繰り返し... やっとまともに動くようになり,振り返ってみるとショボいミスもありましたが, これ以上犠牲者が増えないように…
疑似分散モードでインストールができたら,次は完全分散モードです. インストール方法をさらっと書いていますが,ここはかなりハマりました. 下記の2つのノードで構築することとします. Master node (1台のみ必要) namenode jobtracker Worker node (何台…
さて,KVMを入れ終わりました.次は仮想マシン上でHadoopを動かします. ひとまず,お手軽に試せる疑似分散モードでインストールしてみましょう. 事前準備 必須ではないのですが,時刻がずれると色々と気持ち悪いので,NTPを有効にしておきます. cp /etc/n…
KVM超便利だな〜,と使っていたけど時計がずれまくってしまって,どうもおかしい. ntpで同期させても再起動すると元に戻ってしまう. これはどういうことだ,とググったら,設定変えなきゃダメじゃんの巻. ntpdate ntpdateを叩くとこんな感じになります. …
ロイヤル・コンセルトヘボウに続いて,ロンドン交響楽団が来日しました. 今年はマーラー作品を演奏し,しかも5番と9番をやるということで,調子に乗って2回も行ってしまったとさ. ロンドン交響楽団 イギリスのオーケストラと言えば,ロンドン交響楽団.CD…
KVMにおけるクローン作成 (virt-clone) KVMでは,virt-cloneコマンドでクローンを作成することができます. 例えばこんなふうに. virt-clone --prompt --original OriginalVM --name CloneVM --file path/to/clone.img --nonsparse しかし,このコマンドは…
仮想マシンで最近流行りのKVM.今まではXenばかり使っていて,まあ困ってないし別にいいか,と思っていたのだが, せっかくOSを入れ直したので,KVMにしてみた.インストール自体は,慣れればそんなに難しくない. 事前確認 intel VTかAMD-Vがサポートされて…
これまでDebianばっかり使ってきたけど,ひょんなことからCentOSを使うことになった. しかもCentOS上でKVMを使うので,コンソール表示のためにGUIも利用したい状況に. しかし,インストール先のマシン(hp ML115)にモニターなんてついてないのであった. だ…
やっと,海外オケ到来の季節がやってきました. 春以来全然コンサートがなく,秋に集中していたので待ち望んでいたのでした. ロイヤル・コンセルトヘボウ管弦楽団 あまりに有名なので,あれこれ説明する必要もないでしょう. 自分の中では,眠りの森の美女…
基調講演のあと「CassandraとHadoopによるNoSQL協奏曲」にも参加したので,自分的に重要そうと思ったこと をメモっておく. Cassandra豆知識 書き込みは元々速い よってチューニングは,あんまり気にしなくてもOK.コミットログに記録してから,非同期でSSta…
初参加 品川シーサイド駅にも初めて行ったが,大崎で乗り換えに失敗してしまった.約束の時間に遅れてしまい,かなり焦る. cooseeごめんよ〜. 会場はスタッフさんの応対が若干慣れてない&それでもやれることは一生懸命やろう,という気持ちが表れていて,…
Cassandraのパラメータを色々変えながらデータを取りたいと思った. が,それ以前にパラメータの組み合わせを作るだけで四苦八苦してしまったので,ここに書いておこうと思う. Array#product RubyにはArray#productが用意されていて,Arrayでパラメータ達を…
前回計測した結果では,始めの箇所(データサイズが小さなところ)が何故か遅くなってしまっていた. 計り方に問題があるような気がするので,ちょっとやり方を変えてみる. 計測方法をちょっと変える 安直だけど,データサイズの増やし方を逆にしてみる.具体…
insertを計るならgetも計るべし,ということでgetも計測してみた. 計測方法 まずはデータの大きさを1バイトから10kバイトまで変えながらinsert. キーを一意にするために,データサイズと繰り返し回数を使って生成したMD5をキーに使っています. require 'd…
データの大きさを変えるとinsertが遅くなってしまったので,もうちょっと細かく計測してみることにした. 計測方法 データの大きさを1バイトから10kバイトまで変えながらinsert. それぞれ1000回繰り返した時の時間を計測. require 'benchmark' require 'ru…
今度はinsert時に書き込むデータの大きさを変えてみる. 1バイトから10000バイトまでグルグル回す やってる中身は前回と同じです. require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace', 'server:9160') [1, 1…
読み書きができるようになったので,軽くベンチマークしてみる. insert, get and count_columns 簡単に計れそうなものを3つ.それぞれ10000回繰り返す. require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace',…
あー,油断してたら1ヶ月以上経っちゃった... 前回はrequireするところまでだったので,今度はごく普通に使ってみる. 基本的な操作 クライアントの生成 # キースペース名とサーバ名は適宜編集しましょう client = Cassandra.new('MyKeyspace', 'server:9160…
cassandra-cliで操作するのもつらくなってきたので,そろそろRubyから使えるようにします. Rubyインストール native extensionのために,ruby-devとmakeも必要です. aptitude install ruby ruby-dev make rubygems Gemインストール 念のため,Gemがあるか…
nodetoolのしかも使いそうなものだけ. というか他にもコマンドがありすぎて,手に負えない. 状態確認 ring ノード間で形成されているringを確認. nodetool ring -h localhost Address Status Load Range Ring 152969239942589118687714590887829286072 19…
これまでは単体でしか動作させてなかった. 複数ノードで動作させるのは簡単なので,設定してしまおう. 設定の仕方 ノードが互いに認識できるようにする. ここでは2つ分(以下Node A,Node B)立ち上げることにする. インストール Cassandraのインストール…
でエクスポート/インポート. エクスポート sstable2jsonコマンドを使います. # rootで実行 # あらかじめデータを全てディスクに書き込む nodetool flush MyKeyspace -h localhost # JSONでエクスポート sstable2json /var/lib/cassandra/data/MyKeyspace/S…
cassandra-cliに用意されているコマンドを試す.結果が明らかなものは一部省略. 状態確認 いま動いてる状態を教えてくれるコマンドたち. # サーバに接続 connect localhost/9160 =>Connected to: "Test Cluster" on localhost/9160 # クラスタ名 show clus…
Cassandraにはキースペースという概念がある. それは言ってしまえばMySQLにおけるデータベースのようなものだ. インストールした時点でKeyspace1というものが用意されているが,そのままずっと使うのも気持ち悪い. そこで,新たなキースペースを作る. 初…
Hadoop(というかHBase)を動かそうとしたが,結局HDFSがうまく動かない. この際,Cassandraに変更だ! ということで,lennyにインストールするなら楽勝のメモ. apt-line設定 Cassandra用のapt-lineが用意されているので追加すればOK. # 今のところunstable…