こんにちは、たいしゅうです。
今回は、EMRで利用できるHadoopについて紹介したいと思います。
【膨大なデータを処理する方法】
そもそもビッグデータ分析のような「膨大なデータを処理したい」という要求を満たすには、
下記の3つのパターンがあります。
1.プログラムの処理ロジックを磨き上げる(パフォーマンスチューニング)
2.処理するコンピュータの性能をパワーアップする(スケールアップ)
3.処理するコンピュータの台数を増やして処理をする(スケールアウト)
上記1はアプリのロジック効率化などでパフォーマンスを上げることで対応できますが、限界があるため、あまり有効的な方法ではありません。
上記2はそれなりに有効ですがコンピュータのパワーを1000倍に上げるのはコスト的にも困難になります。クラウドなら一時的な利用なども可能ですが、1台のコンピュータの性能を上げる場合は、一台での稼働では、エラー時に処理が止まってしまうなどのリスクがあり、あまりお勧めできません。これが物理サーバの場合だと利用しない時間帯はムダなコストになってしまいます。
上記3はビッグデータ処理に必要なマシン台数を増やして並列に処理を行う「分散処理」という方法です。マシン台数は増減に対して柔軟なので要件に応じて最適な台数を用意すれば大丈夫です。現在のビッグデータ処理業務に対する要求に最もマッチした答えがこの「分散処理」です。しかし、分散処理は簡単にできるわけではなく、並列に用意された各コンピュータはバラバラに動いてしまい、処理全体の効率化や協調性を取るには、複雑な実装が必要です。
【Hadoopの特徴】
そこで、この分散処理を取りまとめる役割を果たすのが、Hadoopになります。
処理を行うために並列で用意されたコンピュータをHadoop制御下に置き、それらに対して小分けにされた処理を割り振り、処理状況の管理を行い、各コンピュータで処理された結果を回収しひとつにまとめます。Hadoop制御下におかれたコンピュータ群が「あたかも一つの巨大なコンピューターであるかのように振る舞い、ビッグデータ処理という目的をはたす」この「処理基盤」を形成することこそがHadoopの役割なのです。
今回はここまでになります。
最後まで、ご覧いただきありがとうございました。
次回もお楽しみに。