2010-01-01から1年間の記事一覧

WordCountやっと動いた

Hadoop Tutorialでよく見かけるWordCountを試してみました. なかなか動かず,あれこれ修正してようやく何とかなりました. Hadoopのバージョンによって,継承すべきクラスとか引数の型が異なるみたい. MapperとReducer 今回は,バージョン0.20.2+737で動作…

Hadoop Streamingのハマりどころ3つ

Hadoop Streamingでもつまづいては修正し,再びつまづいては修正しの繰り返しでした. 今回も,これ以上犠牲者を増やさないためのメモ3つ. Streaming Command Failed!で落ちる まず,Mapper,Reducerは絶対パスで指定する必要があります. # ×:相対パスだと…

RubyでHadoop Streaming

Hadoop Streamingは標準入出力さえ扱えれば,他の言語でもMapReduceが実現できるようにする仕組みです. じゃあ,実際どうなの?ということで,Rubyを例にPi計算をしてみました. 事前準備 と言ってもHadoopがインストールされていれば,Rubyをインストールす…

Hadoop datanodeの複製はvirt-cloneしただけじゃ動かなかった

ちょっと前にkvmclone.plのエントリを書きました. そこでも触れたのですが,HadoopのdatanodeにはstorageIDというものがあり,ノード固有の値が割り当てられています. このstorageIDが重複すると,重複した片方が停止するようになっており,単に複製しても…

はてなブックマーク年間ランキングトップ100 2010 (コンピュータ・IT編)

ネタとして作ってみた.エンジニアならこのランキングの方がピンとくるかも. scrapeして,sortして...結構大変だった. Windows XPの起動時の長いディスクアクセスは、Windows Updateの履歴が溜まりすぎていたせいだった?! - 全力HP 3650users 使いやすく…

Hadoop完全分散モードが動かなくてハマったところ4選

前エントリの完全分散モードでの動作ですが,実はすんなりとは行かず,何日も苦しみました. ググっては試し,ググっては試し,の繰り返し... やっとまともに動くようになり,振り返ってみるとショボいミスもありましたが, これ以上犠牲者が増えないように…

完全分散モードでHadoopインストール

疑似分散モードでインストールができたら,次は完全分散モードです. インストール方法をさらっと書いていますが,ここはかなりハマりました. 下記の2つのノードで構築することとします. Master node (1台のみ必要) namenode jobtracker Worker node (何台…

疑似分散モードでHadoopインストール

さて,KVMを入れ終わりました.次は仮想マシン上でHadoopを動かします. ひとまず,お手軽に試せる疑似分散モードでインストールしてみましょう. 事前準備 必須ではないのですが,時刻がずれると色々と気持ち悪いので,NTPを有効にしておきます. cp /etc/n…

KVM仮想マシンの時刻が32402秒もずれて困った

KVM超便利だな〜,と使っていたけど時計がずれまくってしまって,どうもおかしい. ntpで同期させても再起動すると元に戻ってしまう. これはどういうことだ,とググったら,設定変えなきゃダメじゃんの巻. ntpdate ntpdateを叩くとこんな感じになります. …

ロンドン交響楽団2010年日本公演

ロイヤル・コンセルトヘボウに続いて,ロンドン交響楽団が来日しました. 今年はマーラー作品を演奏し,しかも5番と9番をやるということで,調子に乗って2回も行ってしまったとさ. ロンドン交響楽団 イギリスのオーケストラと言えば,ロンドン交響楽団.CD…

kvmclone.plで楽々仮想マシン作成

KVMにおけるクローン作成 (virt-clone) KVMでは,virt-cloneコマンドでクローンを作成することができます. 例えばこんなふうに. virt-clone --prompt --original OriginalVM --name CloneVM --file path/to/clone.img --nonsparse しかし,このコマンドは…

CentOSにKVM導入

仮想マシンで最近流行りのKVM.今まではXenばかり使っていて,まあ困ってないし別にいいか,と思っていたのだが, せっかくOSを入れ直したので,KVMにしてみた.インストール自体は,慣れればそんなに難しくない. 事前確認 intel VTかAMD-Vがサポートされて…

CentOSでVNCServer

これまでDebianばっかり使ってきたけど,ひょんなことからCentOSを使うことになった. しかもCentOS上でKVMを使うので,コンソール表示のためにGUIも利用したい状況に. しかし,インストール先のマシン(hp ML115)にモニターなんてついてないのであった. だ…

ロイヤル・コンセルトヘボウ管弦楽団2010年日本公演

やっと,海外オケ到来の季節がやってきました. 春以来全然コンサートがなく,秋に集中していたので待ち望んでいたのでした. ロイヤル・コンセルトヘボウ管弦楽団 あまりに有名なので,あれこれ説明する必要もないでしょう. 自分の中では,眠りの森の美女…

楽天テクノロジーカンファレンス2010続き

基調講演のあと「CassandraとHadoopによるNoSQL協奏曲」にも参加したので,自分的に重要そうと思ったこと をメモっておく. Cassandra豆知識 書き込みは元々速い よってチューニングは,あんまり気にしなくてもOK.コミットログに記録してから,非同期でSSta…

楽天テクノロジーカンファレンス2010

初参加 品川シーサイド駅にも初めて行ったが,大崎で乗り換えに失敗してしまった.約束の時間に遅れてしまい,かなり焦る. cooseeごめんよ〜. 会場はスタッフさんの応対が若干慣れてない&それでもやれることは一生懸命やろう,という気持ちが表れていて,…

パラメータの組み合わせを作りたい時にはArray#productを使う

Cassandraのパラメータを色々変えながらデータを取りたいと思った. が,それ以前にパラメータの組み合わせを作るだけで四苦八苦してしまったので,ここに書いておこうと思う. Array#product RubyにはArray#productが用意されていて,Arrayでパラメータ達を…

Cassandraのgetを計測しなおした

前回計測した結果では,始めの箇所(データサイズが小さなところ)が何故か遅くなってしまっていた. 計り方に問題があるような気がするので,ちょっとやり方を変えてみる. 計測方法をちょっと変える 安直だけど,データサイズの増やし方を逆にしてみる.具体…

Cassandraのgetを計測する

insertを計るならgetも計るべし,ということでgetも計測してみた. 計測方法 まずはデータの大きさを1バイトから10kバイトまで変えながらinsert. キーを一意にするために,データサイズと繰り返し回数を使って生成したMD5をキーに使っています. require 'd…

Cassandraのinsertを計測する

データの大きさを変えるとinsertが遅くなってしまったので,もうちょっと細かく計測してみることにした. 計測方法 データの大きさを1バイトから10kバイトまで変えながらinsert. それぞれ1000回繰り返した時の時間を計測. require 'benchmark' require 'ru…

Ruby経由でCassandra 4回目

今度はinsert時に書き込むデータの大きさを変えてみる. 1バイトから10000バイトまでグルグル回す やってる中身は前回と同じです. require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace', 'server:9160') [1, 1…

Ruby経由でCassandra 3回目

読み書きができるようになったので,軽くベンチマークしてみる. insert, get and count_columns 簡単に計れそうなものを3つ.それぞれ10000回繰り返す. require 'benchmark' require 'rubygems' require 'cassandra' client = Cassandra.new('MyKeyspace',…

Ruby経由でCassandra 2回目

あー,油断してたら1ヶ月以上経っちゃった... 前回はrequireするところまでだったので,今度はごく普通に使ってみる. 基本的な操作 クライアントの生成 # キースペース名とサーバ名は適宜編集しましょう client = Cassandra.new('MyKeyspace', 'server:9160…

Ruby経由でCassandra

cassandra-cliで操作するのもつらくなってきたので,そろそろRubyから使えるようにします. Rubyインストール native extensionのために,ruby-devとmakeも必要です. aptitude install ruby ruby-dev make rubygems Gemインストール 念のため,Gemがあるか…

nodetool

nodetoolのしかも使いそうなものだけ. というか他にもコマンドがありすぎて,手に負えない. 状態確認 ring ノード間で形成されているringを確認. nodetool ring -h localhost Address Status Load Range Ring 152969239942589118687714590887829286072 19…

複数ノードで動作

これまでは単体でしか動作させてなかった. 複数ノードで動作させるのは簡単なので,設定してしまおう. 設定の仕方 ノードが互いに認識できるようにする. ここでは2つ分(以下Node A,Node B)立ち上げることにする. インストール Cassandraのインストール…

sstable2json/json2sstable

でエクスポート/インポート. エクスポート sstable2jsonコマンドを使います. # rootで実行 # あらかじめデータを全てディスクに書き込む nodetool flush MyKeyspace -h localhost # JSONでエクスポート sstable2json /var/lib/cassandra/data/MyKeyspace/S…

cassandra-cliのコマンドたち

cassandra-cliに用意されているコマンドを試す.結果が明らかなものは一部省略. 状態確認 いま動いてる状態を教えてくれるコマンドたち. # サーバに接続 connect localhost/9160 =>Connected to: "Test Cluster" on localhost/9160 # クラスタ名 show clus…

Keyspaceを新しく作る

Cassandraにはキースペースという概念がある. それは言ってしまえばMySQLにおけるデータベースのようなものだ. インストールした時点でKeyspace1というものが用意されているが,そのままずっと使うのも気持ち悪い. そこで,新たなキースペースを作る. 初…

Cassandraインストールメモ

Hadoop(というかHBase)を動かそうとしたが,結局HDFSがうまく動かない. この際,Cassandraに変更だ! ということで,lennyにインストールするなら楽勝のメモ. apt-line設定 Cassandra用のapt-lineが用意されているので追加すればOK. # 今のところunstable…