2010-01-25[n年前へ]
■Ruby Rindaとdrubyで(エンコード・サーバを)作ってみた
(分散処理システムLindaのRubyによる実装である)Rindaをさわってみたので(中略)エンコードのリクエストを入れると順番にエンコードしてくれるサーバみたいなものを作ってみました。FFmpegでEncodeをするリクエストを受け付けるServerみたいなもの(後略)
FFEFile::SRC_DIR 以下にエンコードするファイルを突っ込んでその後drubyで公開されているffe_serverのrequestメソッドをエンコードしたい種類とファイル名を引数にして呼べば後は勝手にエンコードしてくれる。
ファイル自体もdrubyで送ろうとおもったけど、パイプが壊れたり、接続が切れたりする(Fileオブジェクトの参照渡しのせい)ので断念。
2010-01-27[n年前へ]
■RubyとHadoopで分散処理 Hadoop Streamingの仕組み
「RubyとHadoopで分散処理 Hadoop Streamingの仕組み」
Hadoopとは,Googleの基盤技術であるMapReduceをJavaでオープンソース実装したもので,分散処理のフレームワークです。Hadoopを使うと,1台のサーバでは時間の掛かるような処理を,複数のサーバで分散処理させることができます。
さて,実際にHadoopを使うには2つの方法があります。1つは,もともとHadoopはJavaで作られたものなのでJavaで記述する方法,もう1つはHadoop Streamingという仕組みを使って,Java以外の(標準入出力に対応している)言語で記述する方法です。
今回はRubyを使いたかったため,Hadoop Streamingを利用しました。
2010-04-19[n年前へ]
■「たまに行う大量なバッチ処理」にはAmazon EC2のクラウドサービスを使う
「クックパッドのデータ処理、たった5万円 時間も200分の1以下に短縮、わざわざ米国のサーバを使う理由」
検索ログの解析で問題となるのは処理に要する時間である。なにしろ、クックパッドは毎月900万人近いユーザーが利用するサービスだ。「たべみる」のサービスが対象とするのは、1年分の検索ログであり、そのデータ量は膨大になる。
同社では、社内のデータベースサーバを利用して、この処理を実施した場合、7000時間はかかると見積もった。しかし、米AmazonのIaaS型のクラウドサービスであるEC2を活用し、50台のインスタンス(仮想マシン)を同時に立ち上げ、分散処理のフレームワークである「Hadoop」を利用したところ、わずか30時間で完了した。
この際、同社が利用したAmazon EC2のインスタンス・タイプは、スタンダードプランの「ラージ・インスタンス」。1時間あたりの利用料金は、0.34ドルだ。Amazon EC2では、メモリサイズやCPUのコア数に応じて、8種類のインスタンス・タイプを用意しており、その中で2番目に安い。従って、同社がこの膨大なログの解析処理に要したコストは、0.34ドル×30(時間)×50(台)=510ドル(約4万8000円)となる。
■Powered
by yagm.net