Sparkの紹介とHadoopとの比較

Sparkの紹介とHadoopとの比較

1. Spark と Hadoop

1.1 Haoopの欠点

  • 1. 自己表現能力が限られている。
  • 2. ディスク IO オーバーヘッドが高い。
  • 3. 高いレイテンシー
  • 4. タスク間の接続には IO オーバーヘッドが伴います。
  • 5. 前のタスクが完了するまで他のタスクを開始できないため、複雑な多段階のコンピューティング タスクの処理が困難になります。

1.2 Hadoop MR に対する利点

  • 1. Spark のコンピューティング モデルも MR に属しますが、Map と Reduce 操作に限定されません。また、さまざまなデータセット操作タイプを提供し、プログラミング モデルは Hadoop MR よりも柔軟です。
  • 2. Spark はインメモリ コンピューティングを提供し、中間結果をメモリ内に保存して反復操作をより効率的に行うことができます。
  • 3. Spark の DAG ベースのタスク スケジューリング実行メカニズムは、Hadoop MR の反復実行メカニズムよりも優れています。
スパークマップリデュース
データ保存構造メモリを使用して、復元力のある分散データセット (RDD) を構築し、操作を実行してデータをキャッシュします。ディスク HDFS ファイルシステムの分割
プログラミングパラダイムDAG (変換+アクション)マップ+リデュース
中間計算結果の保存メモリに保持されるため、アクセス速度はディスクより数桁高速です。ディスクに落ちると、IOとシリアル化およびデシリアル化のコストが高くなります。
タスクメンテナンス方法スレッドプロセス
時間小さなデータセットの読み取りに1秒未満の遅延タスクを開始するには数秒かかります

2. Sparkエコシステム

2.1 ビッグデータ処理の3つのタイプ

1. 複雑なバッチデータ処理

時間の範囲は数十分から数時間です

Haoop マップリデュース

2. 履歴データに基づくインタラクティブなクエリ

時間の範囲は数十秒から数分です

Cloudera と Impala のリアルタイム パフォーマンスは Hive よりも優れています。

3. リアルタイムデータストリームに基づくデータ処理

時間の範囲は数百ミリ秒から数秒です

2.2 BDASアーキテクチャ

2.3 Sparkエコシステム

3. 基本概念とアーキテクチャ設計

3.1 基本概念

3.2 運用アーキテクチャ

Executor を使用した Spark の利点: (Hadoop の MR と比較して)

  • 1. マルチスレッドを使用して特定のタスクを実行し、タスクの起動オーバーヘッドを削減します。
  • 2. Executor には BlockManager ストレージ モジュールがあり、メモリとディスクの両方をストレージ デバイスとして使用して、IO オーバーヘッドを効果的に削減します。

3.3 さまざまな概念の関係

  • アプリケーションはドライバーと複数のジョブで構成されています
  • ジョブは複数のステージから構成されます
  • ステージは、シャッフル関係のない複数のタスクで構成されます。

アプリケーションを実行すると、ドライバーはクラスター マネージャーからリソースを要求し、エグゼキューターを起動します。

そして、アプリケーションコードとファイルをExecutorに送信し、Executor上でタスクを実行します。実行が完了すると、

実行結果はドライバーに返されるか、HDFS または他のデータベースに書き込まれます。

4. Sparkは基本プロセスを実行します

4.1 操作プロセス

1. アプリケーションの基本的な動作環境を構築します。つまり、ドライバーはリソースを申請し、タスクを割り当て、それらを監視するための SparkContext を作成します。

2. リソース マネージャーは、エグゼキュータにリソースを割り当て、エグゼキュータ プロセスを開始します。

  • 3.1 SparkContext は、RDD の依存関係に基づいて DAG グラフを構築し、DAG グラフを DAGScheduler に送信して Stage に解析し、次に各 TaskSet を基礎となるスケジューラ TaskScheduler に送信して処理します。
  • 3.2 Executor は SparkContext から Task を申請し、TaskScheduler は Task を Executor に送信して実行し、アプリケーション コードを提供します。

4. タスクは Executor 上で実行され、実行結果を TaskScheduler にフィードバックし、次に DAGScheduler にフィードバックします。実行が完了すると、データが書き込まれ、すべてのリソースが解放されます。

4.2 運用アーキテクチャの機能

1. 各アプリケーションには独自の Executor プロセスがあり、アプリケーションの実行中はプロセスが常駐します。 Executor プロセスは、タスクをマルチスレッド方式で実行します。

2. Spark 実行プロセスは、Executor プロセスを取得して通信を維持できる限り、リソース マネージャーとは関係ありません。

3. タスクは、データの局所性や投機的実行などの最適化メカニズムを使用します。 (計算がデータに近づきます。)

5. Sparkの導入と適用方法

5.1 Sparkの3つの展開方法

5.1.1 スタンドアロン

MR1.0 と同様に、スロットはリソース割り当て単位ですが、パフォーマンスは良くありません。

5.1.2 Mesos 上の Spark

Mesos と Spark には一定の親和性があります。

5.1.3 YARN 上の Spark

MesosとYarnのつながり

5.2 Hadoop+StormアーキテクチャからSparkアーキテクチャへ

Hadoop+Stormアーキテクチャ

この展開方法はより複雑です。

Sparkアーキテクチャを使用してバッチ処理とストリーム処理のニーズを満たす

Spark は高速な小規模バッチ コンピューティングを使用してストリーム コンピューティングをシミュレートしますが、実際のストリーム コンピューティングではありません。

ミリ秒レベルのストリーム コンピューティングを実現することは不可能です。ミリ秒レベルのリアルタイム応答を必要とするエンタープライズ アプリケーションでは、Storm などのストリーム コンピューティング フレームワークが依然として必要です。

Spark アーキテクチャの利点:

  • 1. ワンクリックでのインストールと構成、スレッドレベルのタスク監視とアラーム。
  • 2. ハードウェア クラスタ、ソフトウェア メンテナンス、タスク監視、アプリケーション開発の難易度を軽減します。
  • 3. 統合されたハードウェアとコンピューティング プラットフォームのリソース プールを簡単に作成できます。

5.3 Hadoop と Spark の統合デプロイメント

YARNでは異なるコンピューティングフレームワークが均一に実行される

メリットは次のとおりです。

  • 1. コンピューティング リソースは、必要に応じてスケールアップまたはスケールダウンできます。
  • 2. 負荷アプリケーションを混在させる必要がなく、クラスターの使用率が高くなります。
  • 3. クラスター間でのデータ移行を避けるために基盤となるストレージを共有する

現状:

1. Spark は現在、Hadoop エコシステムの一部のコンポーネントによって実装されている機能を置き換えることはできません。

2. Hadoop コンポーネントを使用して開発された既存のアプリケーションを Spark に完全に移行するには、一定の費用がかかります。

Sparkの紹介とHadoopとの比較分析に関するこの記事はこれで終わりです。SparkとHadoopの関連コンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法
  • 一般的な Hadoop および Spark プロジェクト ケース 7 つについての簡単な説明

<<:  jsを使用して動的な背景を実現する

>>:  標準的なHTMLの書き方は、Dreamweaverによって自動的に生成されるものとは異なります。

推薦する

Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法

昨日、パソコンにPHP開発環境をセットアップした後、Apacheサーバーを再起動するとエラーが続きま...

SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...

Dockerカスタムネットワークコンテナ相互接続

目次序文-リンクカスタムネットワーク質問する序文前回は、 -Linkパラメータを使用してコンテナ間の...

WebデザイナーがRetinaディスプレイデバイス向けの画像を作成する方法

特記事項:この記事は、Chris Spooner の英語記事「Web デザイン用の Retina グ...

div タグ内の要素の margin-top が無効である場合の解決策

タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...

HTML 適応テーブル方式

<body style="scroll:no"> <テーブルの...

Vue.js の計算プロパティ、監視プロパティ、ライフサイクルの詳細な説明

目次序文計算されたプロパティ計算プロパティの紹介入門ケース統計価格事例ゲッターメソッドとセッターメソ...

HTML テーブル_Powernode Java アカデミー

HTMLで表を描くには、表タグを使用します。 trは行を意味しますtdは列を示すth はテーブ...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

JavaScript 即時実行関数の使用状況分析

一般的に、関数は実行する前に呼び出す必要があることはご存じのとおりです。以下に示すように、関数を定義...

MySQL ディープページング問題の解決の実践記録

目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...

2013年のウェブデザインUIの最もホットなトレンド最も人気のあるUIデザイン

時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...

MySQLのレプリケーションの詳細な分析

1.MySQLレプリケーションの概念これは、プライマリ データベースの DDL および DML 操作...

Promiseの紹介と基本的な使い方の簡単な分析

Promise は、ES6 で導入された非同期プログラミングのための新しいソリューションです。 Pr...

MYSQL の binlog 最適化に関する考察の要約

質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...