ビッグデータの価値は
あなたの手元から産まれる

ビッグデータ分析による情報の潜在価値探索が、企業の競争優位性維持について重要な要素になりつつあることは議論を待ちません。今やあらゆるビジネス領域においてビッグデータの分析や機械学習によるエクスペリエンス向上について挑戦が続いています。

しかし今までのビッグデータ分析は、極めて高いスキル、限られた人員・大規模なコンピューティング環境を必要とし、⼀般のユーザに手が届きにくかったことも事実です。

Apache Sparkの登場によって、今まで極めて高いハードルを必要としていたビッグデータ解析をあなたの手元のPCで実⾏できるまでになりました。今すぐSparkをインストールし、データ分析を始めることができるのです。私たちクリエーションラインは、必要であれば明⽇にでもデータ分析を始めるための支援をいたします。

1台のPCから、10,000台のクラスタまで
プログラムがどこまでも速くなる

今まで並列処理における最大の問題は、並列処理に対応するためのプログラムの書き直しにありました。企業における並列処理対応は完全に付帯的な経費であり、成果が限定的であるにもかかわらず、利用者に長い間多大な負担を強いていました。

Apache SparkはRDD(Resilient DistributedDataset)、DAG(Directed Acyclic Graph, 有向非循環グラフ)を用いることで、記述されるプログラムのスケールアウトに対応します。1台のPCのために記述されたプログラムは、そのまま10,000台のクラスタでも動作します。

Apache Sparkの真価は全てのデータ処理がオンメモリで⾏われることにあります。⼀般的な最小交差⼆乗法を用いたリコメンドエンジンはSparkに書き直すだけで平均的に数倍の性能を出すことができます。Sparkの特性を理解して記述されたプログラムは、時に数百倍の性能改善を引き出すことがあるのです。

私たちクリエーションラインはSparkの特性を理解し、貴社の環境で最適に動作するプログラムの開発を支援いたします。

とは?

Apache Spark™は、性能、使いやすさ、高度な分析機能を目指した、オープンソースの処理エンジンです。元は、カルフォルニア州立大学バークレー校で2009年に開発されていますが、その後、開発者を中心に、Databricksという会社が2013年に設立されています。

Sparkがリリースされてから、広い範囲の業界、特にエンタプライス企業で急速に浸透しています。また、Yahoo、Baidu、Tencent等のインターネット系企業でも巨大なシステムで採用されており、8000ノード規模で数ペタバイトものデータを処理しているところもあります。Sparkはさらにビッグデータ業界においても最も大きなコミュニティを形成しており、200以上の組織で500人以上のエンジニアが参画しています。Databricksはこのコミュニティを支援するために、開発ロードマップの提供やコミュニティ支援策など、多岐にわたってこのプロジェクトをサポートしています。

は誰が使っているのか?

Sparkは様々なデータ処理に適用した汎用的なエンジンです。ETLサポートに加え、対話型クエリ(SQL)、高度な分析(例:マシンラーニング)や大規模データセット間のストリーミングも提供します。さらに、多様なストレージシステムのサポート(例:HDFS、Cassandra、HBase、S3)を通してデータのロード/管理が可能です。同様に、Sparkは多数の3rdパーティライブラリもサポートしています。

言語に関してもR言語、Spark SQL、Java、Python、Scala等、多くを代表的なものをサポートしてます。

Databricks社では、Sparkのコードベースやその周辺を常にエンハンスし、さらに使いやすくなるよう、
努力しています。全てのエンハンスは、Apacheのオープンソースとして公開されていきます。

— Matei Zaharia, VP, Apache Spark, 創業者兼CTO, Databricks

>> Sparkが活用されている業界

の利点は?

Sparkは、MapReduceの抱えていた2つの問題点、対話型のクエリ(Interactive Query)と反復型のアルゴリズム(Iterative Algorithm)を解決することを初期的な目的としていました。総合的に、Sparkは性能を要求するような要件に対応できるエンジンとして、反復的な処理、対話型クエリ、大規模なバッチ型演算、ストリーミング、グラフ型データ処理、等に効果を発揮します。
開発者は、次のようなSparkの特長を評価してます。

シンプル

大規模なデータセットを演算処理する上でAPIは非常に使いやすく、非構造型データのデータ変換や汎用的なデータフレーム向けのAPIを100以上提供しています。

統一したエンジン

SQLクエリ、ストリーミングデータ、マシンラーニング、グラフ型データ等の高度なライブラリを一つのプラットホーム上でサポートすることにより、開発者の生産性が大幅に向上し、複雑なワークフローを構築することを容易にします。

速い

性能を最重要視した設計を持ち、インメモリ処理などの最適化を行うことによりHadoopよりも高速な処理速度を提供します。また、ディスク上のデータ処理も性能を発揮し、現在、ディスク上のデータソート処理速度の世界記録を保持しています。

広範囲な互換性

HDFS、RDBMS、S3、Cassandra、MongoDBなど、広い範囲のデータソースのサポートも提供しています。

エコシステム

Sparkは今後の統計解析、分散コンピューティングのトレンドを見据えた長期的視点に基づいた機能拡張・改善が行われています。
SparkはJava, Scalaといった言語に加え、統計解析研究者に馴染み深いPython、R言語にも対応しています。

今後段階的に実装されるDataFrameはデータセットをインメモリ展開することで、分散環境におけるデータセットの高速なアクセスを可能にします。またMachine Learning Pipelineにより各種機械学習アルゴリズムをSpark分散コンピューティング環境に適用および拡張することがより容易になります。これはscikit-learnやGraphLabなどの利用者にとってより親しみ深い機能拡張となります。

またコンピューティング環境の長期的進展を意識して開発されているProject Tungstenの成果によって、Sparkは今後より効率的にハードウェア資源を活用することができるようになる見込みになっています。これらの継続的な改良により、ユーザのSparkに対する投資は長期的に保護されます。

解析ライブラリ

SparkSQL

SparkSQLによって、従来のRDB(構造化データ)を容易に解析データソースにすることができます。
読み込まれたデータはDataFrameと呼ばれるクラスタのメモリ上に構成されたスケーラブルな分散テーブルに保存され、Spark解析プログラムとシームレスに連携するとともに、実行されるプログラムのスケールアウトに追随します。またSparkSQLはプラグイン経由で様々なデータソースへの読み書きに対応し、既存資産を有効に利用することができます。

またSparkSQLの内部で動作する最適化エンジンにより、従来のApache Hiveなどを利用したSQL-MapReduce変換に比べ高い性能を引き出すことが可能です。

Spark Streaming

既に蓄積されたビッグデータをバッチ処理することに加え、データ分析の現場では近年様々なストリームデータをリアルタイムで処理し応答する需要が高まっています。Spark StreamingはApacheKafka, Apache Flume, HDFS, ZeroMQといったストリームソースに加え、Twitterソーシャルストリームにも対応します。

また公開されている追加ライブラリをオンデマンドで組み込むことで、独自のストリームソースに対応することができます。またSparkの解析ジョブと同様にStreamもまたFault Torelant構成に対応し、解析ノードの障害によって失われたストリームデータは即座に代替ノードでリカバリされます。

MLlib(機械学習)

ほぼ全ての機械学習において行われる繰り返し処理において、中間データの入出力性能は、ジョブスループットに極めて大きな影響を与えます。Sparkが有する機械学習ライブラリは、Sparkのコア技術であるメモリキャッシュ技術、クラスタリングなどの利点を有効に活用することで、従来のMapReduce上に構築された環境に比べ高速で品質の高い学習を行うことが可能です。あるロジスティック回帰分析ではHadoopに比べ約100倍の性能向上を達成することができました。

【対応するアルゴリズム】
ロジスティック回帰/サポートベクターマシン/統計分類/決定木/ランダムフォレスト/Gradient-boosted Trees/ALS(交互最小二乗法)/K-平均法/Gaussian mixtures(GMM)/Power Iteration Clustering/Latent Dirichlet Allication(LDA)/特異値分解(SVD)/QR分解/主成分分析(PCA)/線形回帰/Elastic Net正則化/アイソトニック回帰/多項・二項単純ベイズ/FPgrowth/相関ルールを用いた頻出パターンマイニング/PrefixSpanを用いたシーケンシャルパターンマイニング/要約統計/仮説検定/特徴変換/モデル変換とハイパーパラメータチューニング

GraphX

Spark GraphXはウェブグラフやソーシャルネットワークなどのグラフデータ作成およびページランクや協調フィルタリングなどのグラフ並列計算処理のためのライブラリであり、従来の反復解析処理に適したテーブル型表現と、グラフ探索や分析パイプラインに適したグラフ型表現を、変換処理をほとんど行うことなく透過的に扱うことが可能です。

Spark GraphXは他のライブラリと同様Sparkコアライブラリ上に構成されているため、transform、joinといった処理をRDD並列の恩恵を受け高速に実行することができ、従来の分散処理フレームワークに存在していたノード数の増大に伴う伝播オーバーヘッドを大幅に削減することが可能です。

またSparkではPregel APIを用いたバルク並列処理も適用可能であり、いわゆる”SSSP(Single Source Shortest Path)問題”に対する有効な解決策となります。

ライブラリの拡張

Sparkの解析ライブラリはプラガブルな拡張に対応しています。
またSparkコミュニティによって開発された拡張ライブラリが”Spark Packages( http://spark-packages.org )”で公開されており、コミュニティの成果を容易にプログラムに組み込むことが可能です。

ビッグデータ分析サービス

多数のプロジェクト運営、大手企業との協業で培ったノウハウを活用し、
貴社の要望に応じたソリューションを実行致します。

  • コンサルティング

    • トレーニング
    • プロジェクト運営
      ベンダーコントロール
  • インフラストラクチャ

    • データエクスロー
    • スケールアウト
  • アナリシス

    • データクレンジング
    • プロトタイピング
  • プレゼンテーション

    • ユーザーエクスペリエンス

協業に関する実績

様々なパートナーと協業し、大規模プロジェクトに貢献しています。

  • 大手ゲーム企業ゲームプラットフォーム

    • 提案
    • プロトタイプ
    • 実装
  • 大手製造業 部品管理システム

    • 提案
    • プロトタイプ
    • 実装
  • クラウドプラットフォームサービス

    • 企画
    • プロトタイプ
    • 実装
    • スケールアウト
    • 保守
    • インターフェイス
  • カーナビゲーションデータ解析サービス

    • 企画
    • 提案
    • データエスクロー
    • データ分析
    • プロトタイプ
    • スケールアウト
  • IoTプラットフォーム

    • 企画
    • データ分析
    • プロトタイプ
    • インターフェイス

Sparkが活用されている業界

mautic is open source marketing automation