HBaseのHFile直読みとHDFSのReaderの速度比較

@tatsuya6502さんが『Hadoopソースコードリーディング第4回』で発表された、HadoopのMapReduceのReaderにおいて「HBaseのHFileを直接読み込む」のと「HDFSから読み込む」場合との速度の比較について のその後
1
前へ 1 ・・ 4 5
M.Mouri @m_mouri

@tatsuya6502 内容は理解してないのですが、適当に書いたらNoneCodecが動いてしまいました。ただ、手元の環境ではやっぱり遅いです。なぜだろう?メールでソースを送ります。ソースは公開してもらって構いません。というか、誰かに直して欲しい(笑)

2010-08-24 16:46:13
Tatsuya Kawano @tatsuya6502

@m_mouri お忙しいところありがとうございました。NoneCodecのソースコード受け取りました。帰宅したら読んでみますね。

2010-08-24 18:55:00
M.Mouri @m_mouri

@tatsuya6502 大きなデータでNoneCodecを試したところ42MByte/secまでは上がりましたが、Block圧縮なしよりも遅いです。CPUはおおむね60%前後でした。

2010-08-24 19:12:33
Tatsuya Kawano @tatsuya6502

@m_mouri そうですか。ブロック圧縮なしよりも遅くなってしまいましたか...。僕の方でもできるだけ早く試しますねー。

2010-08-24 19:21:31
Tatsuya Kawano @tatsuya6502

@m_mouri あれー、いただいたMRジョブってwriteだけがNoneCodecになってるかな。多分、効果が出るのはreadの方になるんじゃないかな。

2010-08-24 19:33:54
Tatsuya Kawano @tatsuya6502

@m_mouri あ、違うか。readはコーデックを自動判定するから、わざわざ書かなくていいのか。QT: あれー、いただいたMRジョブってwriteだけがNoneCodecになってるかな。多分、効果が出るのはreadの方になるんじゃないかな。

2010-08-24 19:40:32
M.Mouri @m_mouri

@tatsuya6502 ソースは追いかけてないのですが、NoneCodecにprivate static final String HEADER = "NO";と書いておいたので、これを使ってどこかで判定してくれるんじゃないかと思いました。

2010-08-24 20:10:52
M.Mouri @m_mouri

@tatsuya6502 あくまで仮説ですが、SeqFileはgzipでファイルサイズが小さくなる場合に最適化されている気がします。なので、圧縮なしだとZERO COPY等が発生してパフォーマンスが落ちるのかも知れません。時間があるときにSeqFileのコードを読んで見ます。

2010-08-25 02:33:52
Tatsuya Kawano @tatsuya6502

@m_mouri とりいそぎ、CopySequenceFileWithNoneを試してみました。正しく動いているようです。一点気づいたのですが、readStreamHeaderが頻繁に呼ばれています(多分ブロック毎) 毎回BISをnewしちゃうので非効率かなと感じました。

2010-08-25 05:48:22
M.Mouri @m_mouri

@tatsuya6502 確かにBISをnewするのは無駄なので、BISを使わないでreadStreamHeader()を書いてみました。手元の環境では少し速くなっているようです。もう少しテストして問題なかったら、こちらのコードも送ります。

2010-08-25 09:56:02
Tatsuya Kawano @tatsuya6502

@m_mouri いろいろとありがとうございます。助かります。

2010-08-25 12:09:04
Tatsuya Kawano @tatsuya6502

@m_mouri アップデートされたコードを受け取りました。ありがとうございました。時間ができたら、自分のテストプログラムに組み込んで測定してみますね。

2010-08-25 13:42:34
Tatsuya Kawano @tatsuya6502

@m_mouri NoneCodec ですが、土曜の早朝に自分のプログラムに組み込んで試してみました。30GB超のファイルだったのですが、残念ながら、mouriさんとよく似た結果(codecなしよりも若干遅い)になりました。

2010-08-31 11:48:47
Tatsuya Kawano @tatsuya6502

@m_mouri 小さなデータ+Linuxのディスクキャッシュに入った状態でも試そうと思ったのですが、週末はそれで時間切れになってしまいました。とりあえず、現状はこんな感じです。

2010-08-31 11:49:14
Tatsuya Kawano @tatsuya6502

最近、プライベートな開発作業は、主に通勤電車(往復2時間半+)上に移行しつつあるw EC2のm1.smallサーバーに iPhone 3G の Tourbosh と iSSHでアクセス。生産性は低いけど、まあ使えるレベル。

2010-08-31 11:56:32
M.Mouri @m_mouri

@tatsuya6502 わざわざ試して頂いてありがとうございます!なんとなくですが、HDFSの読み込み性能か、あるいはSeqFileのデシリライズに改善の余地があるような気がします。それにしてもm1.xlargeは$0.68/hだそうなので、ご自分の興味の方を優先して下さい!

2010-08-31 11:57:47
Tatsuya Kawano @tatsuya6502

iPhone 4 にしたら、Bluetoothキーボードで戦力アップ予定。(外付けキーボードにより画面が広く使える) Tourboshはファイルの同期に時間がかかり、まだまだ改良が必要な感じ。キーボードがついたら iSSH + サーバー上の emacs をメインにしたい。

2010-08-31 12:00:47
M.Mouri @m_mouri

@tatsuya6502 ずいぶんとノマドな開発環境ですね。通勤電車では座れるんですか?立ったままの作業は大変そうなのですが。

2010-08-31 12:05:19
Tatsuya Kawano @tatsuya6502

@m_mouri 小さな子供がいると、家ではできないんですよね〜。座れるかどうかは、帰りは半々の確率。行きは急行だとゼロで、15分早く出て各駅停車に乗ると100%座れます。

2010-08-31 12:13:36
Tatsuya Kawano @tatsuya6502

正しくは Turbosh RT @tatsuya6502: 最近、プライベートな開発作業は、主に通勤電車(往復2時間半+)上に移行しつつあるw EC2のサーバーに iPhone 3G の Tourbosh と iSSHでアクセス。生産性は低いけど、まあ使えるレベル。

2010-08-31 13:47:18
切り取り線 @kiri_tori

✄------------ 1/2(日) ------------✄

2011-01-02 00:00:00
Kazuki Ohta @kzk_mover

HBase + MapReduceは、HFileを直接読んだ方が早い的な話を @tatsuya6502 先生がしてた気がする。スループットだけだったら確かにそれでいいな。

2011-01-02 18:23:01
前へ 1 ・・ 4 5