Apache HadoopとAzure Databricksを比較

Apache Hadoopと Azure Databricksを比較

Apache Hadoop(アパッチ ハドゥープ)」とは、 ビッグデータを複数のマシンに分散して処理できる、オープンソースのプラットフォームである。

ビッグデータを蓄積、分析する際に発生するプロセス同士の通信、監視、障害時の対応といった煩雑な作業を、Mapper、Reducerと呼ばれる2つのスクリプトを作成するだけでまかない、容易に大規模データの分散処理を実現する。

Hadoopは、 2004年にGoogleが論文で発表した独自の分散処理フレームワーク「MapReduce」をもとに開発が始まり、現在は、HadoopはApacheのトップレベルプロジェクトのひとつとして、世界規模の開発貢献者コミュニティによって開発が続けられている。

Hadoopは、アプリケーションが数千ノードからペタバイト級のデータを処理することを可能にするが、オーバーヘッドが大きく、パフォーマンスが求められるリアルタイム処理には向かない傾向がある。

パフォーマンスが求められる分散処理プラットフォームとしては「Spark」がある。

そのほかのHadoopの特徴は、次のとおり。

■データ量に応じたスケールアウトが可能。

Hadoopは、シンプルながら、さまざまな処理に柔軟に対応できるプログラミングモデル「MapReduce」と分散ストレージ「HDFS」で構成されており、スケールアウトを前提として設計されているため、サーバ台数の増加に応じて性能を上げていくことが可能となる。

■スキーマ定義が不要。

「HDFS」にデータを格納する際にはスキーマ定義が不要であるため、事前の設計の手間を低減できる。Hadoopでは処理するタイミングで意味づけを行うため、とりあえずデータを格納し、処理の方針が決まった段階でデータの扱い方を定義することができる。

■高い耐障害性がある。
Hadoopには専用ハードウェアや特別なスペックが必要なく、市販のサーバを利用できるため、基盤構築の費用を抑えることができる。

また故障発生を前提としたアーキテクチャであり、耐障害性が高い。複数のマシンを1つのストレージとして扱うことができるため、一部のマシンが故障してもデータが失われないように設計されている。また一部のノードが故障した場合でも、すぐに別のノードへ処理を振り分けることが可能である。

■あらゆる言語でスクリプトを作成することができる。
HadoopのフレームワークはJavaで書かれているが、標準入出力を持つ言語であれば、あらゆる言語でスクリプトを作成することができる。


Azure Databricksとは

■概要

Azure Databricks(アジュールデータブリックス)は、Azureプラットフォームに最適化された「Apache Sparkベース」の分析プラットフォーム。

■基本説明

Azure Databricksは、Apache Sparkをベースとする分析サービス。

「高速」「使いやすい」「コラボレーション性」などの特徴があり、ビッグデータ分析ソリューションやAIソリューションを構築できる。

■ユースケース

Azure Databricksは、コラボレーション対応可能な統合環境を提供し、「Sparkでのデータ探査」「プロトタイプ作成」「データドリブンアプリケーション実行プロセス構築」などを行える。

データウェアハウス構築

規模を問わずさまざまなデータを集約することで、「分析ベース」「分析ダッシュボード」「運用レポート」などを作成できる。

カスタム機械学習モデル構築

Azure Databricksアーキテクチャを利用すると、規模を問わずあらゆるデータを結合し、カスタム機械学習モデルを構築できる。

ストリーミングデータのリアルタイム分析

「各種ストリーミングソース」や「Webサイトクリックストリームログ」などから継続的にデータを取得して、ほぼリアルタイムの分析情報を得られる。

■オフィシャルサイト情報

オフィシャルサイト情報

→Azure →Azure Databricks

料金情報

→Azure →Azure Databricks →Azure Databricks の価格

最適化ApacheSpark環境

■Apache Sparkテクノロジー

Azure Databricksは、オープンソースのApache Sparkテクノロジーをベースとしている。

Apache Spark創始者たちと共に設計されたもので、Azureに最適化統合している。

■フルマネージドSparkクラスタ

Azure Databricksは、クラスタを起動し、Apache Spark環境をすばやく組み込む。

クラスタは、高信頼性とハイパフォーマンスを維持するように、自動的に「設定」「構成」「微調整」が行われる。

■コンポーネント

Azure Databricksには、Spark機能として次のコンポーネントが含まれている。
・構造化データ処理「Spark SQL」+「DataFrame」
・リアルタイム処理「Streaming」
・マシンラーニングライブラリ「MLib」
・グラフ計算「GraphX」
・言語サポート「Spark Core API」

主な特徴

■スケーラブル

Azure Databricksでは、分析プロジェクトや機械学習プロジェクトを簡単に自動スケーリングできる。

■言語(ライブラリ)サポート

Azure Databricksでは、言語やディープラーニングフレームワークを自由に選択して機械学習ソリューションを構築できる。

サポート言語

・Python
・Scala
・R言語
・SQL言語 など

サポートディープラーニングフレームワーク

・TensorFlow
・Keras
・XGBoost
・Pytorch
・Scikit-learn など

■エンタープライズセキュリティ

Azure Databricksは、エンタープライズレベルのセキュリティを提供する。

「シングルサインオン(Azure Active Directory統合)」と「ロールベースアクセス制御」により、詳細なユーザー権限設定を行える。

■Azureサービス統合

Azure Databricksは、Azureのデータベースやデータストアと深いレベルで統合できる。
・Azure SQL Data Warehouse
・Azure Cosmos DB
・Azure Data Lake Storage
・Azure Event Hubs
・Azure Data Factory
・Blob Storage など

 

参考元サイト