MacFuseとsshfs

19 Jan
ユーザー空間でドライバを書くためのライブラリ(という認識で正しいのかな?)FUSEのOSX版、MacFUSEがGoogleから公開された。 おまけでsshfsというツールが付いていて、これはMacFUSEを使ってssh先のマシンのディレクトリをドライブとしてマウントするというもの。これを使うと、ssh先のマシンの好きなディレクトリをローカルファイルシステムと同じように扱える。FinderでDrag&Dropでファイル操作ができるのはもちろん、アプリケーションからリモートホスト上のファイルを開いたり編集したりできる。 1. ダウンロード&インストールする ここからダウンロードできる。インストーラ形式のものを使うのが一番簡単。dmgファイルを普通に開いて、中に入っているインストーラでインストール。再起動が必要。 2. マウントする まず、マウントするためのディレクトリをTerminalで適当な場所にディレクトリを作成。 $ mkdir ~/mnt/caelum 次に、sshfsコマンドでマウントする(/usr/local/binにインストールされる)。sshのユーザー名,リモートホスト,マウント対象ディレクトリをscpの要領で指定する。マウント先には先のコマンドで作成したディレクトリ、volnameは作成する仮想ドライブのボリューム名 $ sshfs ohkura@caelum:/home/ohkura ~/mnt/caelum -oping_diskarb, volname=”caelum” コマンドを実行すると新しいドライブが出現する 3. 使う! これでもうローカルのハードディスクと同じ感覚でリモートホスト上のファイルを扱えます。...
Read more »

Krispy Kreme

11 Jan
ドーナツを作るところがみえるドーナツやさんが新宿にできたらしいという話をネットで見つけた。 どうも世の中では12月中旬から話題だとか、流行分析っぽい研究をしているのにこれでいいのか? (いいわけをすれば使っているデータセットが固定されていてリアルタイムではないから仕方ない) ということで行ってみた。 DoCoMoタワー(正式名称知らず)のみえるところにあった。1時間待ちとか。 小さいドーナツ状の生地を、上下に動かして膨らませる。 数秒で揚げる。 どべっとシロップをかけて、あとは乾かせばできあがり。 ここで作っているのは1種類(オリジナルなんとか)で、他のものは作りたてを売っているわけではないっっぽい。 行って食べるならオリジナル〜を食べるのが正解。(おまけで、できたてを1人1個試食用にくれる)...
Read more »

Luceneで分散インデクシング

6 Jan
最近Luceneを使ってみている。Luceneを使って実験用のブログ検索エンジン(ぽいもの)を作っているが、とにかくインデクシングが遅い。Nutchでは、Luceneのインデックスをいくつものマシンに作成して、インデクシング/検索共に分散してやることが推奨されているようだが、残念ながら常時占有できるマシンがたくさんあったりはしない。 Luceneの本によれば、マルチスレッドでメモリ上にインデックスを作成して、あとでまとめて1つのインデックスをファイルシステム上に作るというのが、Luceneのインデクシングを高速化する常套手段らしい。しかし、それで高速化できるのは最大でも(インデックスのマージにかかる時間が0としても)1つのマシン上のCPU数だけで、大幅な高速化はできない。 そこで、複数のマシンでメモリ上にできるだけ大きな(メモリぎりぎりの)インデックスを作成し、それをファイルに書き出してネットワーク経由で中央に集め、中央でマージするという方法を試してみた。 手順は以下の通り ・Lucene2.0ではRAMDirectoryはシリアライズできないので、Lucene-601のパッチを当ててビルドする。 ・インデックス対象ドキュメントをノードに配布する ・ノードでドキュメントをRAMDirectory上のインデックスに登録し、RAMDirectoryをファイルにシリアライズする ・RAMDirectory(をシリアライズしたファイル)を中央に集める ・中央で1つのFSDirectoryにマージ この結果、単純に1台でインデクシングする場合と比べて5〜10分の1程度の時間でインデクシングできるようになった。 マシンは8台利用したが、処理時間のほとんどは最後のマージにかかっているので、これ以上台数を増やしてもそんなに速くならないだろう。 FSDirectoryのサイズが増えるに従って、操作がどんどん遅くなるようだ(もちろん、普通に考えて妥当ではあるけど)。...
Read more »