Hadoop環境はハードウェアの選定、日々の運用・管理などに非常に手間がかかる環境である。これから新規に構築するならCloudera Managerなどを導入し、管理の負担を軽減するのがよいだろう。
Spark
またインハウスで大量のデータを処理しなければならない場合のもう1つの候補として、Sparkが挙げられる。米IBMが6月にSparkを積極的に推進していくと発表したのも記憶に新しいだろう。SparkはHDFSに特殊なキャッシュを設けた、インメモリ処理を主体とする大規模データ処理基盤である。
Hadoop環境と比較するとHDFSへの書き込み回数が減るため、繰り返し処理や時々刻々と変化する大量のデータが送られてくるストリームデータ処理にSparkは効率よく対処することが可能だ。インタラクティブ分析用のSpark SQLもある。機械学習系のライブラリも充実してきており、Hadoopの導入を検討している場合はSparkの導入も検討してみると良いだろう。こちらもClouderaManagerで導入可能だ。
Amazon Web Service
クラウド型サービスが利用できる場合、Amazon Web Service(AWS)の活用を強く進めたい。AWSには分析業務に利用可能なさまざまなサービスがある。ここではそれらのサービスを紹介しよう。
サービス名 | 詳細 |
---|---|
EC2 | 容易にスケールが可能なクラウドコンピューティングサービス。チーム立ち上げ時に起こる分析環境の増強や、データ処理時のみ高スペックマシンが必要になった際に、柔軟に対応可能な仮想マシンを提供してくれるサービス。 |
S3/Glacier | クラウドストレージサービス。データストレージ領域の構築、バックアップなどの管理が非常に楽になる。どちらも巨大なデータの格納先に使えるが、よく使うデータはS3に、長期間使用しない可能性が高いデータはGlacierに格納するようにするとよい。 |
RDS | クラウドで簡単に利用できるリレーショナルデータベースサービス。MySQL等のリレーショナルデータベース構築や管理の手間を削減するために、このサービスの利用を検討すると良い。 |
Redshift | 列指向の大規模データ向けデータウェアハウス。ペタバイト級のデータにも対応可能。PostgreSQL 互換なので、他のデータベースからの移行は比較的楽。チューニング次第で性能が大きく変わるので運用コストはそれなりにかかる。 |
ElasticMapReduce(EMR) | マネージド型Hadoopフレームワーク。AWSでもHadoopの強力なバッチ処理機構を扱える。自前で1から構築するよりも容易にHadoop環境が手に入る。 |
Kinesis | 大規模な分散データストリームをリアルタイムで取得し格納するためのサービス。何十万ものソースから送られてくる1時間あたりテラバイトを超えるデータにも対応可能。 |
Machine Learning | 機械学習アルゴリズムおよびテクノロジーを扱うためのサービス。複雑かつ高難易度の機械学習によるモデル構築のコストを削減可能。 |