IT社員3人組によるリレーブログ

某IT企業に勤める同期3人が、日常で思ったことを記録していきます (twitter: @go_mount_blog)

bigdata解析を支えるApache Hadoopとは?

どうも、Koheiです
3連休いかがお過ごしでしょうか 

今日はBigdata解析を支える
IT技術 Apache Hadoopについて書きます。
 
みなさんHadoopって知ってますか?
僕は、大学のころから一応データ分析関係の研究はしていたので
名前は聞いたことあるなーくらいでした。

f:id:go-mount:20180713224043p:plain

この子がhadoopイメージキャラクターです。可愛いですね。
 
さて、このhadoopというやつがBigdata技術を支える重要な技術らしいですが、
何ものなの?という話をしたいと思います。

1.Hadoopってなにをしてくれるの?

さて、Hadoopって何者なのか?いつも通り、wikipediaさんに聞いてみます。

Apache Hadoopは大規模データの分散処理を支えるオープンソースのソフトウェアフレームワークであり、Javaで書かれている。Hadoopはアプリケーションが数千ノードおよびペタバイト級のデータを処理することを可能としている。HadoopGoogleMapReduceおよびGoogle File System(GFS)論文に触発されたものである。

ふむ…。なんかすごそう。
wikiにあるとおり、Googleの技術がもとになっています。
Hadoopのコアなところは「分散処理」というキーワードにあります。

2. 分散処理??

 突然ですが、パソコンのデータってどうやって保存されているかご存知でしょうか 。

 

最近はアーキテクチャがいろいろ変わってきてますが
よくあるパソコンはハードディスクにデータを書き込んで残しています。
最近はSSDが主流で60TBとか大容量のモノもでてきてますね。 

 

そこでですが、ハードディスクに書いているデータを読み取るスピードって意識したことあるでしょうか。

最近のハードディスクは大分性能もよくなってきたとはいえ、
だいたい平均80Mbyte/secくらいと言われています。

さて
「ここでみなさんに10TBのデータを用意しました。データをパソコンに読み込んで、解析して下さい」
と言われたとき、この読み込み速度がネックとなる問題が起きます。f:id:go-mount:20180714174859p:plain

10TBのデータをディスクから読み込むだけで

(10[TB]*1024*1024)/80≒131,072[秒]≒2185[分]≒36.4[時間]

かかってしまうのです。
(実際にはキャッシュなど様々な要因が入るのでこの通りではありませんが…)

さらには、読み込んだとしてもメモリ10TBもあるわけがないので
処理も少しずつ行うしかありません。

 

これを解決するのが「分散処理」です。
1台で無理なら、1000台にデータばらけさせればいいんじゃね? 的な発想です。

例えば、1000台のパソコン(正確には1000個のハードディスク)に10TBのデータを均等に分けて処理します。

一つのディスク当たり、約10GBまで容量は減り、処理時間も(10[GB]*1024)/80=128[秒]にまで減るわけです。

Hadoopはこの「分散処理」を手伝ってくれます。

f:id:go-mount:20180714174958p:plain

いまや日本のデータ通信量は、一日10PBと言われており、このような大量のデータの解析は不可欠な技術となっています。

 ちなみに、この手の分散処理、Hadoopが最初かというとそうでもありません。


いわゆる昔からあるスーパーコンピュータと言われるものも、
その多くが分散処理の仕組みで作られています。

 

ただ、専用にカスタマイズされたコンピュータが必要でした。


Hadoopは専用のコンピュータでなくても、家のmacにだって入れることができます。

その点もよく使われる技術として広まった理由だと思います。

3. Hadoopを扱う会社

Hadoopオープンソースソフトウェアで、だれでもすぐに無償でダウンロードして使うことができますが、企業からサポート付きで買うこともできます。
というのもざっとHadoopを説明しましたが、実際使おうとするとなかなか複雑で
また日々アップデートされていっており、これらをキャッチアップするのはなかなか大変だからです。

主要Hadoopベンダーは下記の3社かと思います。

■Cloudera
Hadoopの生みの親と言われるDoug Cuttingも所属するhadoopベンダです。
#ちなみにhadoopの名前の由来は、Dougさんの娘さんが、持ってた自分のぬいぐるみをhadoopって呼び始めたのが由来らしいです。
自社で独自のオープンソースツールを開発しており、
hadoopだけでは手が届かない範囲のサポートも実施しています。

 

■ HortonWorks
Yahoo!Hadoopエンジニアが集まって作られた会社です。
感覚的には一番オープンソースを大切にしている会社で、自社独自というより、
世の中のオープンソースを集めて提供&サポートする形をとっています。

jp.hortonworks.com

 
■MapR
MapRはがりがりHadoopをカスタマイズして、使いやすくしたオリジナルHadoopを作り上げて提供しています。オープンソースを企業向けにカスタマイズして提供するのを第一としているイメージです。
 この他にもAmazonIBMなども企業向けhadoopを提供しています。

4. Hadoopのその先 

 さて、bigdata解析を支える技術としてApache hadoopを紹介してきましたが、
実はすでにhadoopは時代遅れと言われてきている部分もあります。
 
様々な課題がありますが
ざっくりいうと
Hadoopの分散処理では昨今のリアルタイムな処理に追い付かなくなってきた」
ということが言われています。

このため、後継とも言われるApache Sparkなどの技術が近年のトレンドになっています。このあたり、hadoopを取り巻く環境についてはまだ別の場で書きたいと思います。

ではでは