• 会員限定
  • 2016/06/29 掲載

Apache Spark企業導入の基本、Hadoopとは何が違うのか

ガートナーが解説

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
記事をお気に入りリストに登録することができます。
高速分散処理のフレームワークである「Apache Spark(以下、Spark)」が、開発者やITベンダーの大きな注目を集めている。その特徴は、高速でのインメモリ処理を実現し、ビッグデータの分析に大きく寄与すること。これからSparkは、情報管理やアナリティクスの領域でどのような役割を果たすことになるのか。ガートナー リサーチ部門 リサーチディレクターのニック・ヒューデカー氏が解説する。

photo
いま「Apache Spark」がアツい

Sparkはインメモリ技術により高速なデータ処理を実現するもの

 現在Sparkは、新たなデータ処理の方法を提供するものとして大いに人気が高まっている。既にいくつかの分析ツールやプラットフォームに組み込まれており、またデータ管理用の製品の中にも組み込まれている。

 「ガートナー ビジネス・インテリジェンス、アナリティクス&情報活用サミット2016」で登壇したヒューデカー氏は、「今なぜこれだけSparkに注目が集まっているのか。それはSparkがデータ処理、そしてインメモリの技術において最先端の領域を切り開いているからだ」と説明する。

「Sparkは、ガートナーの2015年の高度アナリティクス/データサイエンスのハイプサイクルにおいて、“過度な期待”のピーク期を迎える直前の段階にいる。まだ新しい技術であることも事実だ。過熱はしているものの、広い範囲で普及しているとはいえない」

 通常のデータ処理では、まずデータをハードディスクに保存し、その一部をメモリに移して処理を行い、その中間結果を再度ディスクに保存し、次のステップに進むという形を採る。

「しかしSparkではこの通常のデータ処理のプロセスを踏まない。ディスクに対するキャッシングが不要だ。ほとんど、あるいはなるべく多くのデータをインメモリで処理する。それがSparkの大きなメリットだ。これによりデータをより迅速に処理することができるようになる」

Sparkのメリット
幅広い処理モデル:
 -バッチ、インタラクティブ、ストリーミング
幅広い言語をサポート
多彩なライブラリ
複数の導入シナリオ:
 -スタンドアロン、YARN、Mesos、組み込み、クラウド
コミュニティと民間企業の関与が活発

 元々Sparkは、カリフォルニア大学バークレー校で開発されたデータ処理の仕組みで、その後、オープンソースソフトウェア(OSS)として公開され、SQLとのインターフェースやグラフ計算の能力、ストリーミング処理の能力などさまざまな機能が追加されてきた。

「今、最も典型的なSparkの環境はHadoopだ。SparkはHadoopのインフラにプラグインされていく。これによりHadoopの環境に保存されたデータを活用することができ、またHadoopが提供する実行環境を活用することができる。そのため現在、SparkがHadoop上に設置されているのはよく見られるケースで、ビッグデータの処理を高速化する、あるいは新しいプロセスをHadoop上で実現するためにSparkは活用されている」

 ただしSparkは、Hadoopの環境に制約されているわけではないし、ビッグデータだけで活用されるものでもない。マイクロソフトやMongoDBなどが自社の製品に組み込んでおり、今あるDBMSのプラットフォーム上でもSparkを運用することは可能だ。

SparkとHadoopはどう違うのか

 Sparkが提供するメリットは、インメモリで高速なデータ処理ができるというだけではない。

「Sparkは、バッチ処理もサポートする。またインタラクティブなクエリをSQLで実現できるし、プロセシングのストリーミングも可能だ。そしてSparkは、これら3つの処理を1つのプログラミング言語で実現することができる。異なるスキルセット、違ったインフラを整備することは不要だ」

 またSparkはプログラム的に見ても他のデータ処理の方法、たとえばMapReduceと比べても簡素化されている。ソースコードの行数はMapReduceのコード行数より少なくて済む。

 さらにSparkは、幅広い言語をサポートすると共に、データ統計用のR言語や、データ処理に利用されるスクリプト言語のPythonとも統合することができるし、スタンドアロンやクラウド、その他の組み込み型の仕組みでも活用することができる。

「Sparkは一見Hadoopのように見えるが、SparkはHadoopを置き換えるものではなく、MapReduceを置き換えるものだ」

 MapReduceでは、必要なデータを抽出するmap処理と、実際のデータ処理を行うreduce処理という2段階のタスクを行うことになるが、各タスク間ではデータがハードディスクに書かれていく。

「そのためMapReduceでは、データ処理のスピードが遅くなる。たとえばある企業で4時間かかっていたデータ処理があったが、それをSparkにポーティングしたところ、90秒で完了した。インメモリでのデータ処理による劇的なパフォーマンスの改善だ。ただしすべてのデータ処理をSparkにポートするかといえば、それはケースバイケースだ。Sparkはまだ新しい技術であり、今も変化し続けている」

【次ページ】Sparkは、データ分析で2つの役割を担う

関連タグ

関連コンテンツ

あなたの投稿

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます