Hive感想


Hadoop入れて試してくらいは非常に簡単にできたが、いまいちアーキテクチャは良く分かってない。
単にHiveQLをSQLクエリ感覚で投げてみただけ。

全表対全表で対象を絞り込めずにまともに処理する必要がある場合に手軽に分散出来るのがいいところなのだろう。
たいてい事前準備可能だし、x000万件対?件の片側少なければDBMSのが速いだろうしというところかな。

Javaで手軽にユーザ定義関数を増やせて、分散処理可能というところが魅力ではあるか。
普通にDBMSでの空間演算でどうしても分散が必要になった場合に、AzureかAmazonで10ノードくらい借りて一気に処理まわすと言う使い道くらいか。
持ち出せないデータの場合でも一ヶ月レンタル代+セットアップと分散処理のコード+セットアップとどちらが安いかで判断か。
基本的には、Hadoop Hive=「処理時間」を「マシンリソース≒費用」で解決できるものと言う考え。

いまいちまだ使いどころが思いつかないが、とりあえずは5ノードくらいないと駄目な気はする。
全表×全表の殴り合いが必要な場面ってあんまりないし、点のメッシュ集計とかなら四則演算とGroup化だからそもそも空間演算不要だし。

Hive自体は良く分からんでもSQL書ければなんとなく使えそうだが、速度出すのが目的なので本末転倒になりそうな気もしないではない。
Java真面目に書けば速度出るってもんでもないだろうが。

チューニングはあんまりしてないのでそもそも環境依存で遅い可能性があるが
mpstat見るとCPUは頑張ってそう。

使うレコード数の目安は10億件程度以上が目安かなぁ。
更新頻度もあるが1000万件程度はDBなのでそのあたりが境界くらいか?

なんにせよ「Hadoop使ってみたかったんです」ってだけの目的のない馬鹿っぽい段階の考察はできたか。
地味に検証環境ともう少し小さいデータで試そうかな。

カテゴリー: 雑記, 設計 タグ: パーマリンク