Spark導入事例

CASE Spark

Sparkへの取り組みと導入事例

基盤システム事業本部 OSSプロフェッショナルサービス 土橋 昌

※この記事は、Apache Spark 主要開発会社米Databricks社のブログへ掲載された記事の翻訳です。原文の記事(英語)もご参照ください。

NTTデータについて

NTTデータは、グローバルにITサービスを提供しているNTTグループの会社です。我々OSSプロフェッショナルチームは、様々なOSS(オープンソースソフトウェア)製品を扱うお客様へのコンサルティング、設計、サポートサービスを提供しており、中でもApache Hadoopを長年扱ってきています。7年以上前から、Hadoopシステムの構築を数多く手がけてきており、計算ノードが1000台を超える大規模クラスタの開発も行っています。近年、我々のサポート対象プロダクトにSparkを追加してからは、Sparkに関するご相談、案件が増えてきております。

Sparkが選ばれる理由

長年Hadoopのノウハウを培ってきたNTTデータが今、Sparkの活用に取り組む理由はいくつかあります。 その1つは、Sparkは、HDFSやYARNなどの既存のHadoopシステムと効果的に統合することができる点です。 既にHadoopの運用に慣れた人は、同じクラスタで簡単にSparkを実行することができます。 2つ目は、Sparkが今までのHadoopにない、データ解析に便利な機能を備えている点です。 例えば、インタラクティブなシェルを使ってオンデマンド分析を実現できる点や高レベルAPIを 組み合わせて高度な分析を実現できる点は非常に魅力的です。 このようなメリットを活かしつつ、「Sparkがバランスよく高スループットで、かつ低レイテンシで商用利用できるのかどうか」を検証するため、 大規模クラスタでいくつかの試験を行いました。 その結果、Sparkは、数十TB程度のデータでも良好にスケールし、意図しない性能劣化などを起こさずに処理できることがわかりました。 尚、この検証の結果の詳細については、末尾「参考」のSpark Summit 2014での土橋の講演資料をご覧ください。

NTTデータのSpark活用事例

NTTデータのSpark活用事例をご紹介します。

  1. case1 通信企業のシステム基盤のデータ処理

    NTTデータは5年前に、NTTドコモ様向けに、計算ノードが1000台以上となるオンプレミスのHadoopクラスタを構築しました。 このシステムは大量のシステム運用情報などを処理するために、コモディティサーバを使用してスケールアウト可能で ありながら、高い故障耐性を実現しました。 これほど大規模なHadoopクラスタを運用している事例は当時珍しく、 未知の課題に出会うことが多々ありました。しかし、 これまでのシステムインフラに関するノウハウを応用した結果、 サーバ故障に伴うデータロスを起こさずに4年以上運用し続けています。 ところが最近では、データ処理内容の高度化、多様化に伴い、更に高速かつフレキシブルに処理したいという需要が 出てきました。 言い換えれば、今までのMapReduceとは違った、さらに使いやすいフレームワークや処理基盤が 必要になってきたと言えます。 この需要に対応するため、4000コア以上のSpark on YARNクラスタを構築し、 Sparkの機能評価を行うと共に、いくつかの処理をモデル化し、試験的にSparkに移植しました。

  2. case2 機械や社会インフラから取得した大量のIoTデータに対する数値計算

    NTTデータは、社会インフラの開発を担う企業が推進している統計的なデータ解析のための分析基盤開発をサポートしています。 このようなプロジェクトでは、大規模なデータを扱うと同時に、試行錯誤を何度も繰り返しながらアルゴリズムや分析手法を チューニングする必要があります。それに適した方法としてSparkを活用しています。 この案件では、HDFSを利用してデータを安定保存し、YARNを利用してリソースを管理し、 その上でSparkアプリケーションを動作させています。 YARNを利用するメリットは幾つかありますが、 例えば複数のバージョンのSparkを同時に実行することができる点が挙げられます。 新しい機能を試したい時には新バージョンのSparkを使うこともでき、それと同時にそれまでに実績のある安定した 古いバージョンのSparkでジョブを実行することができます。

Sparkの徹底活用に向けたNTTデータの取り組み

NTTデータは、Sparkの開発に貢献している国内有数の企業です。 冒頭にご紹介したようにHadoopインテグレータとしての 長い経験をもとに、Spark開発コミュニティにもフィードバックを行っています。 フィードバックは、運用性や安定性の 改善に主眼を置いており、Sparkを利用しやすくすることを目的としています。 例えば、Spark用のWebベースのデバッグツール である、「Timeline View」の開発に貢献しています。 Timeline Viewはバージョン1.4.0でSparkの標準機能として 利用できるようになりました。これは、どのタスクがいつ、どこで実行され、どれだけ処理に時間がかかったか等を、 時系列で視覚的に把握することができるものです。 分散処理アプリケーションの開発、チューニング、トラブルシュート等に 非常に有用です。

まとめ

Sparkは、柔軟なフレームワークと優れたパフォーマンスを備えており、米国を中心に商用システムで使われ始めています。 NTTデータは、Sparkを使用していく上で技術的な課題や問題に直面した場合に、それを解析・解決して開発コミュニティに フィードバックする体制を整えました。今後も、分散処理基盤およびOSS分野に関する長い経験を元に、Sparkを活用した システムの開発を積極的に進めます。 オープンソースを利用することで、ビジネスで必要となる様々なデータ処理を実現することができます。 それには、データの管理、バッチ処理、データ解析、ストリーム処理、あるいは可視化などが含まれます。 NTTデータは、オープンソースを積極的に使うことで「オープンイノベーション」を促進できると考えており、 Sparkを重要なコンポーネントとのひとつとして活用していきます。

参考

  • Sparkの検証結果の詳細は、Spark Summit 2014での土橋の講演のプレゼンテーション資料および動画をご参照ください。
  • NTTドコモ様の事例については、NTTドコモ田中様の発表資料も合わせてご参照ください。
  • SparkのTimeline Viewerに関する開発コミュニティへのフィードバックが行われていたチケットもご参照ください。

FROM NTTDATA

NTTデータ担当者より

HadoopやSparkのスケーラビリティをすべての方に

NTTデータの Spark に関する取り組みは、かねてより積極的に Hadoop をご利用されていたお客様を中心に始まりました。それは Hadoop を使い倒してこそ気付く課題感に根ざしたものでした。 ところが最近では、Hadoopをご利用でない方からもSparkにご興味を持っていただくことが増えてきました。それは市場のグローバル化、業務内容の複雑化、ビジネスサイクルのスピードアップが進むのに伴い、データ処理に求められるスケーラビリティ、柔軟性、機能が高いレベルになってきているためと考えています。 例えば Spark は、Hadoop が得意としてきたバッチ処理の高速化に加え、統計処理や機械学習のように複雑な計算を必要とする処理を実現しやすくなっています。また、よりリアルタイムに近い処理を実現するためのストリーム処理の仕組みも持っています。このように様々なワークロードに対応するための仕組みを、柔軟に組み合わせられることが特徴です。 ビジネスを拡大するための道具として、様々な分散処理の仕組みが登場してきました。選択肢が豊富になった一方で、何をどのように使ったらよいか分かりづらい状況が生じています。 「たくさんのデータを保存して処理するにはどうしたらよいか」、「どの使い方が効果的か」というご相談からシステム開発・運用まで含めて、お手伝いをさせていただければ幸いです。

基盤システム事業本部 OSSプロフェッショナルサービス 土橋 昌
基盤システム事業本部
OSSプロフェッショナルサービス
土橋 昌

※本ページに記載されている会社名、商品名、又はサービス名は、各社の商標又は登録商標です。

お問い合わせ

PAGE TOP