- marblejenka
- 5682
- 0
- 26
- 0
#hadoopmodeling 結局DiskとCPUが電気を使う。Diskは回転によって消費電力が変わるが、CPUはアイドルでも消費電力が変わらない。このあたりから議論できるかも?
2011-03-28 19:15:10一つのジョブの個々のタスクを見て動的にやるのは厳しい気がするけど、多数のジョブをぐるんぐるん回し続けるマルチテナントな環境なら、単純に全体のロードを見て動的にノード数を増やしたり減らしたりするのは簡単そうな。 #hadoopModeling
2011-03-28 19:15:15なるほど。理解できそうです。 RT @cocoatomo: #hadoopmodeling もしかして E(X) と E(X^2) を計算するようにバラすのか? どうやらそうらしい.
2011-03-28 19:15:57Hadoop使いも省電力化は免れない。。。「俺たちは、このままでいいのか?」。「電力モデルをきちんと確立できるのか?」。「ディスクのスピンとCPU、に注意する・・・」 #hadoopmodeling
2011-03-28 19:16:22#hadoopmodeling MRの性能問題。Map OutputのIOとShuffleのIOのコスト。まずは前者をMap Multi-Reduceで考えてみる。Combinerより前でCombineすればMap OutputのIOは減る。
2011-03-28 19:16:42#hadoopmodeling pushdownとは。処理の意味が変わらないようにデータ量を減らす。projectionをなるべく実行の早い段階でやる。
2011-03-28 19:18:34( #hadoopModeling live at http://ustre.am/hx3O ) Map Multi Reduce ・・ワードカウント、sum等では減る。avg等では減らないケースも
2011-03-28 19:18:58( #hadoopModeling live at http://ustre.am/hx3O ) pushdown・・DBで使われている技術 select * from A,B selectionをテーブル側(A,B)に持って行く select <= * <= A , B
2011-03-28 19:20:31Hadoopで早くできる処理:合計値、カウント。向かない処理:平均値など、全体を処理しないと結果が出ない処理。 #hadoopmodeling
2011-03-28 19:21:43( #hadoopModeling live at http://ustre.am/hx3O ) * <=JOIN<= select A ,select B なイメージ。Conbinerを普通自作して作るがそれを自動的にやるという話
2011-03-28 19:22:02#hadoopmodeling Record Reduce。Map OutputをHashに詰めとけばCombiner起動前にCombineできる。Hadoperは割と普通にやるけど、これを自動的にやってくれたりする。
2011-03-28 19:22:30#hadoopmodeling local-reduce Mapper-side Join みたいなもの? なんでパフォーマンスが出てこないそうだが, 何故なんだろう? worker が重い?
2011-03-28 19:23:29#hadoopmodeling P Join。OLAP的なものをつくるときの話。クロス分析的なことをやるので、JoinとかAggregatonがおおい。取り扱うデータ量もおおい。
2011-03-28 19:26:24結局のところ、「集める」っていう部分をいかに上手くやってやるかってとこに集約されるわけだ。 #hadoopmodeling
2011-03-28 19:26:30#hadoopmodeling MRだとJoinがおもい。TPC-HというOLAPのベンチマークだと、スタースキーマに売上を地域とか商品とか注文とかの構成でだしてく。ので、結合がいる。
2011-03-28 19:28:18#hadoopmodeling MRだとなんでJoinが重いか。Reduce Side Joinでやるなら、全データをShuffleする必要がある。ので、IOもたくさん。
2011-03-28 19:29:18#hadoopmodeling そもそも重たい join が多い OLAP を高速化するには? projection がほとんどと read > write という仮定の下, できるだけ手前でデータ量を減らす.
2011-03-28 19:30:36( #hadoopModeling live at http://ustre.am/hx3O ) ・事前に疑似JOIN(semi-join)が作成される =>検索時に処理数が減らせる ・semi-join:必要なカラムのみJOIN?
2011-03-28 19:31:44#hadoopmodeling で、semi-joinを使ってみる。必要な結合なカラムだけリモートから取ってきて結合していって、結合のキー以外の対象データはヒットしたのだけリモートからとる。
2011-03-28 19:32:00#hadoopmodeling natural-join = semi-join -> natural-join
2011-03-28 19:33:25#hadoopmodeling で、semi-joinの結合対象となるデータを結合するkeyでパーティショニングしておく。あらかじめShuffleしているかのような効果が。
2011-03-28 19:34:33中心テーブルに対して検索条件を絞り込むためにJoinするテーブルが取り巻いている場合のMapReduceの最適化。全体をJoinせず、semi-joinすることで、全体のデータ量を抑える。 #hadoopmodeling
2011-03-28 19:35:56