Apache SparkとApache Hadoopを比較

    「Apache Spark」と「Apache Hadoop」の概要

    「Apache Spark」と「Apache Hadoop」は、データ分散処理フレームワークです。

    ■「Apache Spark」とは

    Apache Sparkは、インメモリ高速分散処理プラットフォームで、大規模データ処理用統合分析機能を提供します。

    「高速」かつ「汎用的」であることを目標に設計されており、Java派生言語「Scala」で実装されています。

    「クラスタ全体をプログラミングするためのインターフェース」を搭載し、以下の機能を提供します。
    ・Java/Scala/Python/R言語用高水準API
    ・SQLおよび構造化データ処理機能
    ・機械学習機能
    ・グラフデータ処理機能
    ・ストリーミング機能 など

    ■「Apache Hadoop」とは

    Apache Hadoopは、オープンソース大規模データ分散処理フレームワークで、大規模データを効率的に分散処理および管理できます。

    一般的な安価なサーバを複数台用意して、1つの計算処理を「ネットワーク接続した複数コンピュータ」で同時並列処理することで、全体の処理能力を向上できます。

    ユースケース比較

    ■Apache Spark

    Sparkは、インメモリ計算と高レベルAPIにより、「リアルタイム処理」に向いています。

    ・リアルタイムストリームデータ分析
    ・高速分析用途
    ・反復アルゴリズムを使用した並列操作チェーン処理
    ・データをモデル化するためのグラフ並列処理
    ・機械学習アプリケーション など

    ■Apache Hadoop

    Hadoopは「大規模データバッチ処理」に適しています。

    ・大規模データセット処理---データサイズが使用可能なメモリを超えるケース
    ・比較的低コストでのデータ分析インフラストラクチャ構築
    ・即時結果を必要とせず、時間が制限要因ではないジョブ
    ・ディスクの読み取りおよび書き込み操作を利用するタスクを使用したバッチ処理
    ・履歴およびアーカイブデータ分析 など

    パフォーマンス比較

    ■Apache Spark

    Sparkは、Hadoopと比較すると、RAMを使用しディスクアクセスがないため、はるかに高速に処理できます。

    ■Apache Hadoop

    Hadoopは、ローカルディスクに保存されているデータにアクセスするため、Sparkほどの高速性はありません。

    ただし、データサイズが使用可能なRAMよりも大きい場合は、Hadoopの方が論理的な選択となります。

    コスト比較

    ■Apache Spark

    大量のRAMを搭載したノードをスピンアップする必要があるため、コストは大幅に増加します。

    ■Apache Hadoop

    Hadoopは一般的なタイプのディスクストレージを使用できるため、実行コストは比較的低くなります。

    スケーラビリティ比較

    ■Apache Spark

    確認された中では、ペタバイトのデータを含むSpark環境の8000台のマシンがあります。

    ■Apache Hadoop

    Hadoopクラスタとしては、数万台のマシンでエクサバイトに近いデータを格納しているケースがあります。

     

    参考元サイト
    phoenixnap.com →hadoop-vs-spark

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    「Apache Spark」基本情報

    ■概要

    Apache Spark(アパッチスパーク)とは、インメモリ高速分散処理プラットフォームで、大規模データ処理用統合分析機能を提供します。

    ■基本説明

    Apache Sparkは、オープンソースの分散型クラスタコンピューティングフレームワークです。「高速」かつ「汎用的」であることを目標に設計されており、Java派生言語「Scala」で実装されています。

    「クラスタ全体をプログラミングするためのインターフェース」を提供し、「Java/Scala/Python/R言語用高水準API」「SQLおよび構造化データ処理機能」「機械学習機能」「グラフデータ処理機能」「ストリーミング機能」などの高機能なライブラリを搭載しています。

    ■経緯

    ・2014年 初版リリース

    Sparkのコードベースはカリフォルニア大学バークレー校のAMPLabで開発されました。その後、Apache Software Foundationに寄贈され、Apacheトップレベルプロジェクトの1つとして開発が進められています。

    ■ユースケース

    機械学習

    Apache Sparkは「RDD(Resillient Distributed Datasets)」という独自キャッシュ機構を搭載しています。分散メモリRDDを活用することで、機械学習のような特定のデータに対して繰り返しアクセスするような処理を得意としています。

    リアルタイム処理

    Apache Sparkには、リアルタイム処理を実現するためのフレームワークも備わっています。

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

    オフィシャルサイト

    →Apache Spark(Unified Analytics Engine for Big Data)

    ライセンス情報

    Apache Sparkのライセンスは「Apache License 2.0」です。

    詳細について、こちらを参照ください。
    →GitHub →apache/spark →LICENSE

    動作環境

    Apache Sparkは「Windows」「Linux」「macOS」で動作します。

    ダウンロード

    →Apache Spark →Download Apache Spark

    導入事例

    Apache Sparkは、1000を超える組織やプロジェクトで採用されています。

    →Apache Spark →Project and Product names using "Spark"

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Apache Hadoop」「Apache Storm」など。


    「Apache Hadoop」基本情報

    ■概要

    Apache Hadoop(アパッチハドゥープ)とは、オープンソース大規模データ分散処理フレームワークです。大規模データを効率的に分散処理および管理できます。

    ■分散処理とは

    データ処理高速化のための手段として、高価な高性能サーバを導入する方法があります。しかし、処理対象データがさらに増大した場合、処理性能を維持するために大きなコストが発生します。

    もう1つの手段として「分散処理」があります。一般的な安価なサーバを複数台用意して、1つの計算処理をネットワークで接続した複数のコンピュータで同時並列で処理することで全体の処理能力を向上できます。「コストを安く抑えることができる」「将来的な拡張も容易」などのメリットがあります。

    分散処理技術はビッグデータ活用市場の拡大により需要が高まっています。

    ■基本説明

    Apache Hadoopは、一般的なハードウェアで構築された大規模クラスタでアプリケーションを実行するためのフレームワークです。「データ処理基盤」と「分散コンピューティング基盤」という2つの特徴を持っています。

    Apache Hadoopは、コンピュータクラスタ全体の処理能力を統合して、「MapReduceプログラミングモデルによるビッグデータ(大規模データセット)分散処理」を可能とするフレームワークです。主にJavaで実装されています。

    アプリケーションに信頼性とデータ移動の両方を透過的に提供します。数千ノードに対応し、ペタバイト級データを処理できます。

    ■主要開発元

    Apache Hadoopは、Apacheソフトウェア財団(Apache Software Foundation)を中心として開発が進められています。Apacheトップレベルプロジェクトの1つとして、世界規模の開発貢献者コミュニティによって支えられています。

    Apache Hadoopプロジェクトは、「高い信頼性」かつ「スケーラブル」な分散コンピューティングのためのオープンソースソフトウェア開発を目標としています。

    →Apache Hadoop →Who We are(Apache Hadoop Project Members)

    ■経緯

    ・2006年:初版リリース

    Nutchプロジェクト用インフラストラクチャ

    Apache Hadoopは、Webサイトをクロールし、クロールされたページの検索エンジンインデックスを構築する「Nutchプロジェクト」のインフラストラクチャとして構築されました。

    http://nutch.apache.org/

    Google技術ベース

    Apache Hadoopは、以下のGoogleの技術をベースとしてJavaで実装されました。
    ・分散ファイルシステム「GFS(Google File System)」---Google社が自社システムの基盤として利用していたもの
    ・分散処理システム「MapReduce」---分散データベース「BigTable」ベース

    ■ユースケース

    Apache Hadoopは、以下のような大規模データ処理が必要な用途で活用できます。
    ・ログ分析
    ・クリックストリーム分析
    ・マーケティング分析
    ・機械学習
    ・データマイニング
    ・画像処理
    ・XMLメッセージ処理
    ・Webクロール
    ・テキスト処理
    ・データアーカイブ---リレーショナル/表形式データを含む一般的なアーカイブ など

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

    オフィシャルサイト

    →Apache Hadoop

    ライセンス情報

    Apache Hadoopのライセンスは「Apache License 2.0」です。

    詳細について、こちらを参照ください。
    →GitHub →apache/hadoop →LICENSE.txt

    ダウンロード

    →Apache Hadoop →Download

    導入事例

    Apache Hadoopは、「Facebook」「Visa」「Yahoo!」「IBM」「New York Times」「リクルート」「楽天」など、多くのエンタープライズ企業などでの採用実績があります。

    →Apache Hadoop →Powered by Apache Hadoop

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Apache Spark」「Apache Storm」など。