ビッグデータ基盤とは、その名の通りビッグデータを扱う基盤です。多くの場合、コモディティサーバを複数並べた「分散処理の基盤」となります。ビッグデータを扱うプロジェクトには、当然ですがこのビッグデータ基盤が不可欠です。
ビッグデータ基盤の構成要素は、大きく分けて「ストレージ」「リソース管理」「アプリケーション」の3種類です。そしてこれらは、「分散したシステム」として稼働させます。ビッグデータ基盤は、大きく分けて以下の4つの活用用途があります。
バッチ処理基盤としての典型的な利用例は、データの整形やクレンジングなどのいわゆる「ETL(Extract/Transform/Load:抽出、変換、ロード)処理」や、日次データの集計などの「ビジネスレポートの作成」、そして「機械学習のモデリング」などでしょう。
ここ数年、クラウド上でHadoopを利用できるサービスが普及してきています。その大半はこうしたバッチ処理の基盤としての利用を想定しています。
業務システムのバックエンドデータベースとしての利用例は、IoTシステムにおける「リアルタイム異常検知」や、ECサイトにおける「リアルタイムリコメンドのための基盤」などです。
データ分析基盤としての利用例は、大規模データに特化したBI(Business Intelligence)のためのバックエンドデータベースでしょう。
例えば今日のHadoopでは、ImpalaなどのインタラクティブSQLエンジンを活用することで、BIツールに直接接続してSQLを発行しても高速に動作させることが可能になっています。
データサイエンティスト向けの基盤は少し特殊です。データサイエンティストは、社内で活用可能なあらゆるデータにアクセスし、それらを試行錯誤して分析して、ビジネスの知見を見つけ出すスペシャリストです。従って、アドホックなクエリを流すこともあれば、バッチ処理を行うこともあり、その行動や活用手段はさまざまです。彼らが自由にデータを扱い、知見を得られるようにするために必要な基盤を用意してあげる必要があります。
もっとも、1つの基盤=1つの用途と絞る必要はありません。むしろ、複数の用途を1つの基盤で行う=マルチテナント環境にすることによって、コストメリットが出てきます。これがビッグデータ活用の価値となります。
ただし、このように幾つかの用途が相乗りするマルチテナント環境となると、リソースの分離やセキュリティなどの課題も発生してきます。こういった課題をどのように解決するかは、連載の後半で説明する予定です。活用例の詳細は、筆者の執筆した記事「Hadoopの使い方のまとめ(2016年5月版)」もご覧ください。
ビッグデータ基盤について、例えばClouderaでは、Hadoopを中心としたOSSコンポーネントに、管理ソフトウェアを追加したビッグデータ基盤として「Cloudera Enterprise」を用意しています。Cloudera Enterpriseでは、ストレージに「Apache HDFS」「Apache HBase」「Apache Kudu」、リソース管理に「Apache Hadoop YARN(Yet Another Resource Navigator)」を採用しています。
アプリケーションは、ビッグデータを活用する用途別にさまざまなOSS(オープンソースソフトウェア)がそろっています。例えば、バッチ処理の「MapReduce」「Spark」、低レイテンシのSQLエンジンである「Impala」、全文検索エンジンの「Solr」、ストリーム処理の「Apache Spark Streaming(以下、Spark Streaming)」、機械学習の「Apache Spark MLlib(以下、MLlib)」などがこれに当たります。
この他、外部連携用のツールとして「Apache Sqoop(以下、Sqoop)」「Apache Flume(以下、Flume)」「Apache Kafka(以下、Kafka)」、クラスタ管理ソフトウェアの「Cloudera Manager」、データ管理ソフトウェアの「Cloudera Navigator」、クラウド管理ソフトウェアの「Cloudera Director」を合わせて、ビッグデータ基盤を構成しています(図1)。
Copyright © ITmedia, Inc. All Rights Reserved.