【IoT用語集】Hadoopとは?

はじめに

Hadoopとは一言で言えば、オープンソースのミドルウエアです。もともと、ApacheというオープンソースのWebサーバを提供する団体のもとで、各企業からの支援のもとで開発されています。

代表する企業としては、Hortonworksや米国のYahoo!, Clouderaを筆頭にIntelMicrosoftも参加し、開発を進めています。では、Hadoopはどのような場面で用いられるミドルウエアなのでしょうか。その特徴をもとに紹介をします。

データの分散処理をささえる

世の中は、データがあふれています。それを物語っているのが、企業のデータ戦略です。近年トレンドとしてデータウエアハウスやビッグデータといった情報の「塊」がありますが、これらのデータを分析し企業の戦略やトレンドを分析しながら企業を成長させていくプロセスを踏むことにより、確実な企業成長を求めていく動きが盛んです。

このようなデータ分析において必要なのはシステムであり、処理をするソフトウエアです。大量のデータを蓄積していく中で分析の処理が追いつかなければ意味がありませんし、スピード感を持って経営戦略につなげることもできません。

このような大量のデータをうまく処理をしていくための分散処理技術を支えるのが、Hadoopと呼ばれるミドルウエアなのです。Hadoopを利用することにより、大量のデータを効率よく処理をすることができるようになります。
 

Hadoopの特徴について

では、Hadoopはどのようなものでしょうか。Hadoopは主に2つの機能から成りなっており、この2つの機能が作用することにより効率の良い分散処理を実現させています。

① 分散ファイルシステム
Hadoopは、独自のファイル分散の機能をもっています。この独自のファイル分散機能は、Hadoop Distributed File System(HDFS)というものです。

具体的には、この分散ファイルシステムはデータファイルを3つのブロックに分割します。そして、その分割したファイルへアクセスするためにNameNodeとよばれる「ファイルのありか」を示す情報を作成することによって、分割した3つのブロックに対するアクセスを効率よくする仕組みとなっています。

ファイルを分割する理由は、データの安全性です。データは、時としてファイル破損によって壊れてしまうことがあります。このファイル破損が発生してしまうとデータが欠損することもあり、データの安全性を担保できないこともあります。

ただ、このHDFSという仕組みを使うことにより、分割したファイルの1つが破損しても残りの2つのものが正常であれば問題なくアクセスできる仕組みとなっており、データの安全性を担保できるのです。

② フレームワーク
Hadoopを支えるもう1つの特徴が、Hadoop MapReduceフレームワークと呼ばれるものです。これは、まさに分散処理を行うための頭脳的なものです。ファイルを3つのブロックに分散しているためそのファイルを検索するためには、アプリケーションからの検索要求を制御するものが必要となります。

この、検索要求の制御も1つのモジュールに依存してしまうとボトルネックが発生してしまいますので複数の検索モジュールが必要となります。

一方、複数の検索モジュールがいると、それを束ねるコントローラーが必要となります。コントローラーがない場合には負荷の高いモジュールが発生し、そのモジューにアクセスしたアプリケーションは長時間要求が返ってこない状況に陥る可能性があります。これらのボトルネックを解消するのが、Hadoop MapReduceです。

このフレームワークはJobTrackerとTaskTrackerとよばれるものがあり、JobTrackgerは各TaskTrakerの状況をモニターしています。仮に、あるTaskTrakerにおいて負荷が高い状況を察知した場合はその負荷がかかっているTaskTrakerへの要求はせず、別のTaskTrakerに対してデータ処理のタスクを与えます。

簡単にいうと、負荷分散装置の役割があるとされています。このように、全体が効率よく処理さることによって、処理のボトルネックを発生しにくくする働きをします。

Hadoopが利用される場面について

このHadoopが利用される場面は、大量のデータを扱うシステムです。例えば大量のデータを扱うシステムとしては、金融業界における勘定系システムです。預金、送金、振込など日常においてもたくさんの処理がある中で、夜間のバッチ処理は大量のデータを効率よく処理をしなければなりません。

金融機関のシステムが停止した場合は、大混乱に陥ります。現に、これまでも金融機関のシステムが停止したことにより、社会に大きな影響を与えた事件は記憶に新しいと思います。

このような、大量のデータを一度に効率よく処理をしなければならない金融システムにおいてはメインフレームが使われることが多いのですが、そのメインフレームにおけるバッチ処理においてHadoopが利用されていることがあります。

また、不動産業においては大量の物件を管理する場合があり、不動産のサイトでは物件の空き状況を開示するサイトもあります。このような物件検索に関する処理においては、スムーズに情報を提供する必要があるためHadoopの特性を生かしたシステムが構築されています。

さらに、大量の蔵書情報の検索、管理を必要とする図書館のシステムは全国に点在する図書館のシステムと接続していることもあり、その検索処理においてHadoopが利用されています。
このように幅広い分野、システムで利用されているのです。

まとめ

このように現代の大量のデータを処理していく必要がある状況において、Hadoopは様々な日常生活に関わるところで利用されている仕組みなのです。

関連記事はこちら:
【IoT用語集】ミドルウェアとは?
【IoT用語集】Fog Computingとは?

コスト削減とビジネスプロセス改善を推進するプロセスオートメーション。成長が見込まれる地域、最新の開発、マーケットシェア、... 世界のIoTに関するレポート公開中