Hadoopセミナー参加

先日、某巨人の会社で開かれた無料のハンズオンセミナーに参加した。
テーマは実務では経験の無いHadoop/Sparkについて。

www-01.ibm.com

今の会社は導入・検討の可能性があれば平日でも外部セミナーに参加させてくれるところはありがたい。
やっぱそういうとこで社員のモチベーションとか、学習意欲って変わると思う。

本題に戻って、今迄なんとなくHadoopって聞いたことあったし、調べたりもしてたんでどんな時に使うソフトウェアなのかってのもざっくり分かってたけど、実際に触れるってのが良かった。
まあ、前もネット記事見ながら立ち上げて、クエリ投げて結果返ってきたけど、んで何がすごいの?的な感じだったんで肌ではメリットを感じれていなかった(データ数が少なすぎるんで当然)

書籍も電子で買ってたけど、よーわからんって感じで見なくなってたし。

まあ、今回一番良かったのは、実際に使ってる人に対して自分のモヤモヤを質問出来たこと。

最近だとRedshiftみたいな列志向RDBとかも出てるしGoogleとかぐらいしか出番ないんじゃないのか?とか思ってたけど、結論としては『大規模データ集計はどっちも出来るけど、そこからの操作に得手不得手がある』って感じ。
当然ペタバイトとかになればRDBじゃどうにもならんだろうけど。

ざっくり書くとこんな感じ。

RDB
SQLが使える(かなり重要)
トランザクションが使える
インデックス使って絞り込んだデータ抽出が得意
バッファプール使って同じ結果を高速化
クエリの結果が早い
めちゃくちゃデカいGroupByとかどうなんのかわからん
ロール管理、アクセス管理がしやすい
オプティイマイザが枯れている

Hadoop
シーケンシャルアクセスの設計なので特定のデータ抽出が苦手
大規模データにもスケールアウトで対応できる
少ない件数だと結果が返ってくるのが遅い
基本的にはjavaじゃないとデータの操作ができない
ディスクへのデータの格納方法が冗長化前提
チューニングが難しい

こう書くと、意外とRDBの方が良いなって印象。

ただ、時代と共にデータも増えてきてRDBも色々頑張って来たけど、どうにもならんくなってHadoopが使われるようになって来た感じかな。(歴史的な背景は不明)

本当は使いたくないけど仕方ない的な。

ただ、使い易くするようにSQLライクにデータ操作が出来るようにしたHiveなんかが出て来たみたい。
javaは一切出来ない俺でもデータ操作が出来る(すごい)

あとは、HadoopはMap/Shuffle・Sort/Reduceって処理の際の中間結果をディスクに書き出すようでまあ、デカいデータであればやっぱり時間がかかるってことで、インメモリで処理して高速化するようにしたSparkも出来てかなり実用的になった模様。

そういや最近はよくSparkって聞く気がする。
機械学習みたいに大量なデータを高速に処理する時にはメモリ上でササッと処理するんだろう。
メモリも安くなって来たからこそ実現できた事なのかもしれない。

最後はHadoop周りの自社製品の説明とハンズオンをやって終了。セミナーの時間が押しまくってセミナールームの利用時間ギリギリに逃げるように退散。

だけど、Hadoopに対する理解も深まったし、手ブラで無料であれだけの事を教えてもらえたのはラッキーだった。

さすがはインターネットの巨人様。ありがとうございました。

もう一回Hadoopの本を読んで再挑戦して見よう。

 

https://www.amazon.co.jp/Hadoop徹底入門-第2版-オープンソース分散処理環境の構築-太田-一樹/dp/479812964X