Apache Spark

この記事はApache Sparkについて解説した記事です。会話形式のやさしい文章で「Apache Spark」の用語のイメージを紹介した後に,採用に役立つApache Sparkの知識を解説しています。

1分で分かる!Apache Sparkとは?

今日は平和だなぁ。お茶でものんでゆっくりしちゃおうかなぁ。

そんなこと言ってるときに限って、何か起こっちゃうものだよね~。

:ジャバ―ド先生、そんな意地悪なこと言わないで!ボクは日頃の行いが良いから大丈夫だよ!あれ、ゾウさんからメールだ…。ことりん君、この前はHadoopについて教えてくれてありがとう!おかげでログの解析はとっても捗っているよ!そういえば、今度はSNSサービス「アニマルグラム」にリアルタイム分析機能を追加しようと考えているんだ。ただ、試しにHadoopを使ってやってみたんだけど、やり方がまずいのかどうも遅くて…。良い方法があれば教えてね。

やっぱり忙しくなりそうだね!

うぅ…束の間の休息だったね。気を取り直して…ゾウさんがやりたいSNSのリアルタイム分析って大量データの分析だよね?それならゾウさんが言ってるとおりHadoopで良さそうだけど、なんでうまくいってないんだろう。ジャバ―ド先生何か心当たりある??

たしかにHadoopは大量データの分析に使えるんだけど、リアルタイム分析はあんまり得意じゃないんだよね。だからパフォーマンスに問題が出ているのかもしれないね。

そうなんだ!でも、Hadoopが使えないとなるとちょっと困ったことになるよね。

ことりん君、そういうことならApache Spark(アパッチ スパーク)を使ってみるといいんじゃないかな?

Apache Spark??

そうそう。Apache SparkはHadoopと同じように大量データを分析することができるんだよ。いわゆる分散処理フレームワークってやつだよ。

Hadoopはリアルタイム分析が苦手だって話だけど、Apache Sparkならそれができるってことかな??

そうなんだ。大量データの分析はHadoopが得意なんだけど、今回のようなリアルタイムに分析結果が欲しい場合はApache Sparkの方が得意なんだ。いろんな条件にもよるけど、データ量があまり大きくなければ、Apache SparkはHadoopの100倍も高速なこともあるんだよ。

そんなに処理速度が違うんだ!!

かなり違うよね。でも、Apache SparkとHadoopは同じ分散フレームワークだけど、決して競合関係ではないんだ。お互いの弱点を補完する関係だから、どちらを導入すればやりたいことが実現できるのかよく考えて導入するようにしようね。

そうだね!どちらも知っておけば最適な方を選択することができるもんね!ゾウさんにはApache Sparkのことを教えておくね!ジャバ―ド先生ありがとう!

ゾウさんうまくいくといいね!

Apache Sparkとは?採用に役立つ基礎知識

Apache Sparkは、分散処理フレームワークの1つです。分散処理フレームワークとは、大量データを高速に処理するための仕組みであり、複数のコンピュータに並行(分散)して処理をさせることで実現しています。

データが大きな価値を持ったり、AIの社会実装が進んでいる現代社会において、大量データの分析は非常に重要な技術となっています。そのため、今回のテーマであるApache Sparkはそのようなシーンでよく利用されています。なお、このApache Sparkですが、オープンソースソフトウェアであるため、誰もが無料で利用することが可能です。

Apache Sparkを使うエンジニア

前述したとおり、Apache Sparkは大量データの分析を行うために導入します。そのため、データサイエンティストやデータ分析エンジニア、AIエンジニアがApache Sparkを利用することがあります。

Apache Sparkを使うエンジニアの特徴と在籍業界

Apache Sparkは大量データの分析に必要なソフトウェアです。現在、データ分析関連では、Apache SparkまたはHadoopがスタンダードであると言われています。そのため、Apache Sparkを使うエンジニアに特筆すべき傾向はありません。

なお、 Apache Sparkを使うエンジニアが存在する業界についても、特定の業界だけではなく、さまざまな業界に幅広く在籍しています。

採用する時に知っておくとよいこと

Apache Sparkとクラウドサービスの技術は常に変化しています。また、一見同じ技術に見えても、時代によってトレンドがあります。今回のテーマであるApache Sparkが誕生したのは2014年頃ですが、その時から現在に至るまでに様々な変化を遂げています。

その1つがクラウド化です。メジャーなクラウドサービス提供事業者は、Apache Sparkのクラウド化を進めています。以下に各クラウドサービスをご紹介しておきます。

採用に直接影響するようなものではありませんが、分散フレームワークのトレンドとして把握しておきましょう。

求人のポイント

求人を作成する時は、下記の内容を求人に入れるとよいです。

1システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2開発環境
3現在のエンジニア組織の体制
4現行システムの課題と募集の背景
5求められる業務と期待値
6エンジニアとしてのスキルアップ支援制度の有無と詳細
7エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8選考フロー
9待遇
10キャリアパス

Apache Sparkの豆知識

Apache Sparkの得意なポイント

ここまでApache SparkとHadoopを比較してきましたが、改めてApache Sparkが得意な点を整理しておきます。

  • パフォーマンス
  • 導入にかかる負荷

Apache Sparkはインメモリと呼ばれる技術で処理を行います。そのため、メモリ量を超えるような大量データではパフォーマンスが落ちます。ただし、メモリ量に収まる程度のデータであれば、Hadoopとは比較にならないほど高速に処理を行うことができます。

また、Apache Sparkにはアプリケーションを開発するためのライブラリやAPI群が整備されています。そのため、大きな負荷を必要としないという点もHadoopより優れているといわれています。

Apache Sparkを使った有名な企業・サービス

Apache Sparkはさまざまな企業で導入されています。アメリカのNetflix、Yahoo、eBayなどといったテック企業はもちろんですが、日本でも分野を問わずたくさんの企業で採用されています。以下にApache Spark(クラウドサービス含む)を導入している企業をご紹介します。

Apache Spark関連のイベント 

日本では日本Hadoopユーザー会が主催しているHadoop / Spark Conference Japanというイベントがあります。こちらは不定期で開催されています。ちなみに、前回の実施は2019年です。

関連記事

  1. AtCoder

  2. CoffeeScript

  3. Eclipse

  4. Redis

  5. Bootstrap

  6. Javascript