Apache Spark:オープンソースから業界へ

Netologyブログ専用のフリーランスエディターであるAlyona Lazareva は、ビッグデータスペシャリストに最も人気のあるツールの1つであるApache Sparkフレームワークに関するレビュー記事を執筆しました。



多くの場合、人々はビッグデータが自分の生活にどのように影響するかを知らない。 しかし、すべての人がビッグデータのソースです。 ビッグデータのスペシャリストは、いいね、コメント、Youtubeでの動画の視聴、スマートフォンからのGPSデータ、金融取引、ウェブサイトの動作など、デジタルトラックを収集して分析します。 彼らはすべての人に興味があるわけではなく、パターンに興味があります。







これらのパターンを理解することは、広告キャンペーンを最適化し、製品またはサービスに対する顧客のニーズを予測し、ユーザーの気分を評価するのに役立ちます。



調査と調査によると、ビッグデータはマーケティングとITの分野で最も頻繁に実装され、その後、研究、直接販売、ロジスティクス、金融などが行われます。







ビッグデータを処理するための特別なツールが開発されました。 今日最も人気のあるのはApache Sparkです。



Apache Sparkとは



Apache Sparkは、RAM内の不十分な構造のデータの並列処理および分析のためのオープンソースフレームワークです。



Sparkの主な利点は、パフォーマンス、暗黙的な並列化とフォールトトレランスを備えた使いやすいソフトウェアインターフェイスです。 Sparkは、Scala、Java、 Python、 Rの4つの言語をサポートしています。



このフレームワークは、カーネルと4つのライブラリの5つのコンポーネントで構成され、それぞれが特定の問題を解決します。







Spark Coreはフレームワークの中核です。 分散スケジューリング、スケジューリング、および基本的なI / Oを提供します。



Spark SQLは、構造化データ処理用の4つのフレームワークライブラリの1つです。 DataFramesと呼ばれるデータ構造を使用し、分散SQLクエリエンジンとして機能できます。 これにより、Hadoop Hiveリクエストを最大100倍高速で実行できます。



Spark Streamingは、ストリーミングデータを処理するための使いやすいツールです。 その名前にもかかわらず、Spark Streamingはリアルタイムでデータを処理しませんが、マイクロバッチモードで処理します。 Sparkの作成者は、各マイクロバッチの最小処理時間は0.5秒であるため、パフォーマンスはそれほど影響を受けないと主張しています。



このライブラリにより、ストリーム分析にバッチ分析アプリケーションコードを使用できるため、λアーキテクチャの実装が容易になります。



Spark Streamingは、HDFS、Flume、Kafka、ZeroMQ、Kinesis、Twitterなどの幅広い一般的なデータソースとシームレスに統合されます。



MLlibは、高速の分散型機械学習システムです。 彼女は、競合する最小二乗(ALS)アルゴリズムのベンチマークでテストしたとき、Apache Mahoutライブラリよりも9速いです。



MLlibには一般的なアルゴリズムが含まれています。





GraphXは、グラフデータのスケーラブルな処理のためのライブラリです。 GraphXは、トランザクション方式(データベースなど)によって変更されるグラフには適していません。



Sparkの動作:





また、いくつかの分散ストレージシステムもサポートしています。





どうでしたか



ビッグデータを使用するための最初のフレームワークは、MapReduceテクノロジーに基づいて実装されたApache Hadoopでした。



2009年、カリフォルニア大学バークレー校の大学院生グループが、オープンソースのクラスター管理システムMesosを開発しました。 製品のすべての機能とMesosに基づくフレームワークの管理がいかに簡単かを示すために、同じ大学院生のグループがSparkの作業を開始しました。



クリエイターが考えたように、SparkはHadoopに代わるものであるだけでなく、Hadoopを上回るものでした。



2つのフレームワークの主な違いは、データへのアクセス方法です。 HadoopはMapReduceアルゴリズムのすべてのステップでデータをハードドライブに保存し、Sparkはすべての操作をRAMで実行します。 これにより、Sparkは最大100倍のパフォーマンスを獲得し、ストリーム内のデータを処理できます。



2010年には、このプロジェクトはBSDライセンスの下で公開され、2013年には、有望なプロジェクトを後援および開発するApache Software Foundationによってライセンスされました。 MesosもApacheの注目を集めてライセンスを受けましたが、Sparkほど人気はありませんでした。



使用方法



2016年にApache Foundationが実施し調査によると 1,000社以上がSparkを使用しています。 マーケティングだけでなく使用されます。 以下は、企業がSparkで解決するタスクの一部です。





代替案



ビッグデータの収集、分析、処理の必要性が高まるにつれて、新しいフレームワークが登場します。 一部の大企業は、内部のタスクとニーズを考慮して独自の製品を開発しています。 たとえば、GoogleのBeamとAmazonのKinesisが登場しました。 幅広いユーザーに人気のあるフレームワークについて話す場合、すでに述べたHadoopに加えて、Apache Flink、Apache Storm、Apache Samzaを呼び出すことができます。



重要な指標について、Apacheライセンスの下で4つのフレームワークを比較しました。







各フレームワークには、独自の長所と短所があります。 これまでのところ、それらのどれも普遍的ではなく、残りを置き換えることはできません。 そのため、ビッグデータを扱う場合、企業は特定の問題を解決するのに最適なフレームワークを選択します。 トリップアドバイザーやグルーポンなど、いくつかの企業は同時に複数のフレームワークを使用しています。



まとめると



Apache Sparkは、 Big Dataを操作するための最も人気のある急成長しているフレームワークです。 優れた技術パラメーターと4つの追加ライブラリにより、Sparkを使用してさまざまな問題を解決できます。



このフレームワークの明白な利点は、多数のSparkコミュニティとパブリックドメイン内のそれに関する大量の情報です。 明らかな欠点のうち、データ処理の遅延は、ストリームモデルを使用したフレームワークの遅延よりも長くなります。



All Articles