Hadoopは米Yahoo!社に所属していたDoug Cutting氏を中心として2006年に開発された分散処理フレームワークです。2004年Googleが論文にて発表した独自の分散処理フレームワークMapReduceをもとに生み出されました。ちなみに名前の由来はDoug氏の息子が持っていたゾウの人形です。
Hadoopのメリットはまずサーバーの台数に比例して処理能力を高められる、いわゆるスケールアウトが可能だということ。Web上のビッグデータはどんどん増え続けます。そんなときHadoopを実装していればコストを押さえつつ対応し続けられるのです。
また、安定性が高いのも魅力のひとつ。どこか一つのサーバーで障害が起こってもほかのサーバーが対応することで処理が止まりません。
ほかにもHadoop Streamingというツールを使えばあらゆる言語でスクリプトを作成できる、自動で同じkeyのデータがまとめられるといったメリットがあり、Yahoo!・Amazon・Facebookなどの有名企業でHadoopは活用されてきました。
ただしHadoopにはリアルタイムで特定のデータを見つけ出すような高速処理には向かない、Hadoop StreamingなしではJavaが必須といった弱点もあります。
Sparkはデータの格納場所をHDDやSSDではなくメモリにすることでHadoopの10~100倍の速度を実現する分散処理プラットフォームです。カリフォルニア大学バークレー校で開発が進められ、2014年にApacheソフトウェア財団に寄贈されました。
SparkはHadoopが弱点とするリアルタイム処理に対応可能でかつ、データの格納場所の選択肢もHadoop Distributed File System (HDFS)、Cassandraなど多様です。
現在HadoopとSparkは共存関係にあり、「リアルタイムの高速処理が求められるデータはSparkで、メモリに乗り切る以上のサイズのデータを処理する場合はHadoopで」などと使い分けられています。
分散処理フレームワークの基礎とその代表格であるHadoop、Sparkの2つについて述べました。記事中でも紹介した通り、Hadoop、Sparkの2つはデータを扱う職業において需要の高いスキルです。
この記事を皮切りにそれらを扱う腕を磨いていけば、データ活用が進む社会において非常に心強い武器となるはず。まずはHadoop、Sparkをインストールして簡単な処理を実行してみましょう!
(宮田文机)
メルマガ登録をしていただくと、記事やイベントなどの最新情報をお届けいたします。
30秒で理解!インフォグラフィックや動画で解説!フォローして『1日1記事』インプットしよう!