Welcome to Our Website

HPE開発者コミュニティポータル

オリジナルの投稿情報:

"authorDisplayName": "Carol McDonald","publish": "2018-10-17T08:00:00.000Z","tags": "spark"

このブログ記事では、Apache Sparkとその歴史を紹介し、その特定のセット機能はほとんどの約束を示す。 私たちは、他の主要な技術との関係を議論し、いくつかの有用な指針を提供します。

Spark2で。,0以降のバージョ

Apache Sparkとは何ですか?

Sparkは、幅広い状況での使用に適した汎用分散データ処理エンジンです。 Spark coreデータ処理エンジンに加えて、SQL、機械学習、グラフ計算、およびストリーム処理用のライブラリがあり、アプリケーションで一緒に使用できます。 Sparkでサポートされるプログラミング言語には、Java、Python、Scala、Rがあります。, アプリケーショ Sparkに最も頻繁に関連するタスクには、大規模なデータセット全体でのETLおよびSQLバッチジョブ、センサー、IoT、または金融システムからのストリーミングデータ

履歴

Sparkを理解するためには、その履歴を理解するのに役立ちます。, Sparkの前には、回復力のある分散処理フレームワークであるMapReduceがあり、googleは大規模なコモディティサーバーのクラスターにわたって、ウェブ上の爆発的なコンテンツ

Google戦略には3つのコアコンセプトがありました。

  1. データを配布する:データファイルがクラスタにアップロードされると、データファイルはデータブロックと呼ばれるチャンクに分割され、データノード間で分散され、クラスタ全体に複製されます。,
  2. 計算の分散:ユーザーは、キー/値ペアを処理して中間キー/値ペアのセットを生成するマップ関数と、同じ中間キーに関連付けられたすべての中間値をマージするreduce関数を指定します。 この関数型スタイルで書かれたプログラムは、自動的に並列化され、次のようにコモディティマシンの大規模なクラスタ上で実行されます。

    • マッピングプロセスは、割り当てられた各データノード上で実行され、分散ファイルからのデータブロック上でのみ動作します。,
    • マッピングプロセスからの結果は、”シャッフルとソート”と呼ばれるプロセスでレデューサに送信されます:マッパーからのキー/値のペアは、キーでソートされ、レデューサの数でパーティション化され、ネットワークを介して送信され、レデューサノード上のキーソートされた”シーケンスファイル”に書き込まれます。
    • reducerプロセスは、割り当てられたノードで実行され、データのサブセット(シーケンスファイル)でのみ動作します。 Reducerプロセスからの出力は出力ファイルに書き込まれます。,
  3. 障害を許容:データと計算の両方が、データまたは処理のために別のノードにフェールオーバーすることにより、障害を許容できます。

MapReduceワードカウントの実行例:

Googleが検索エンジンの結果でウェブサイトをランク付けするために使用していたPageRankのような反復的なアルゴリズムには、複数のMapReduceジョブを連鎖させる必要があり、ディスクへの読み書きが多くなります—–, 複数のMapReduceジョブがチェーンされている場合、MapReduceジョブごとに、分散ファイルブロックからmapプロセスにデータが読み込まれ、その間のSequenceFileに書き込まれ、その

GoogleがMapReduceフレームワークについて説明するホワイトペーパー(2004年)を発表して一年後、Doug CuttingとMike CafarellaはApache Hadoop™を作成しました。,

Apache Spark™は、カリフォルニア大学バークレー校のAMPLab内のプロジェクトとして2009年に始まりました。 Sparkは2013年にApache Software Foundationのインキュベートされたプロジェクトとなり、2014年初頭に財団のトップレベルプロジェクトの一つとして推進されました。 Sparkは現在、財団が管理する最も活発なプロジェクトの一つであり、プロジェクトの周りで成長してきたコミュニティには、Databricks、IBM、中国のHuaweiなどの多くの,

Sparkプロジェクトの目標は、MapReduceのスケーラブルで分散されたフォールトトレラントな処理フレームワークの利点を維持しながら、より効率的で使いやすくすることでした。 MapReduceに対するSparkの利点は次のとおりです。

  • Sparkは、複数の並列操作にわたってメモリ内のデータをキャッシュすることによって、はるかに高速に実行されますが、MapReduceはディスクからの読み取りと書き込みが多くなります。
  • SparkはJVMプロセス内でマルチスレッドタスクを実行しますが、MapReduceはより重いJVMプロセスとして実行されます。, これにより、Sparkの起動が高速化され、並列処理が向上し、CPU使用率が向上します。
  • SparkはMapReduceよりも豊富な関数型プログラミングモデルを提供します。
  • Sparkは、反復アルゴリズムを使用した分散データの並列処理に特に役立ちます。

Sparkアプリケーションがクラスター上で実行される方法

以下の図は、クラスター上で実行されているSparkアプリケーションを示しています。,

  • Sparkアプリケーションは、ドライバプログラム内のSparkSessionオブジェクトによって調整された独立したプロセスとして実行されます。
  • リソースまたはクラスタマネージャは、パーティションごとにタスクをワーカーに割り当てます。
  • タスクは、その作業単位をそのパーティション内のデータセットに適用し、新しいパーティションデータセットを出力します。 めに反復アルゴリズムを適用し操作を繰り返しデータ、利益からキャッシュデータセット全体繰.,
  • 結果はドライバアプリケーションに送り返されるか、ディスクに保存することができます。,Sparkに含まれるanager
  • Apache Mesos–Hadoopアプリケーションを実行することもできる一般的なクラスターマネージャー
  • Apache Hadoop YARN–Hadoop2のリソースマネージャー
  • Kubernetes–コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースシステム

sparkにはローカルモードもあり、ドライバとエグゼキュータはクラスタの代わりにコンピュータ上のスレッドとして実行されます。,

Sparkは何をしますか?

Sparkは、数千の協力する物理サーバーまたは仮想サーバーのクラスターに分散された、一度に数ペタバイトのデータを処理することができます。 これは、開発者のライブラリとApiの広範なセットを持っており、Java、Python、R、およびScalaなどの言語をサポートしています。, Sparkは、HPE Ezmeral Data Fabric、HadoopのHDFS、AmazonのS3などの分散データストア、hpe Ezmeral Data Fabric、Apache HBase、Apache Cassandra、MongoDBなどの一般的なNoSQLデータベース、およびhpe Ezmeral Data FabricやApache Kafkaなどの分散メッセージングスト

典型的なユースケースは次のとおりです。

ストリーム処理:ログファイルからセンサーデータまで、アプリケーション開発者はますますデータの”ストリーム”に対処する必要があります。, このデータが安定的に、しばしば複数ソースから。 これらのデータストリームをディスクに保存して遡及的に分析することは確かに実現可能ですが、データが到着したときにデータを処理して行動することが賢明または重要な場合があります。 たとえば、金融取引に関連するデータのストリームをリアルタイムで処理して、潜在的に不正な取引を特定し、拒否することができます。

機械学習:データ量が増加するにつれて、機械学習のアプローチはより実現可能になり、ますます正確になります。, ソフトウェアに訓練することができるの識別、行動をトリガ内でのことによって、これまでのデータセットを適用前に同じソるのではなくデータです。 Sparkは、データをメモリに格納し、繰り返しクエリを迅速に実行できるため、機械学習アルゴリズムの学習に適しています。 大まかに類似したクエリを何度も何度も実行すると、最も効率的なアルゴリズムを見つけるために可能な解決策のセットを通過するのに必要な時間,

インタラクティブ分析:事前定義されたクエリを実行して販売または生産ラインの生産性または株価の静的ダッシュボードを作成するのではなく、ビジネスアナリストやデータサイエンティストは、質問をして結果を表示し、最初の質問をわずかに変更するか、結果をより深く掘り下げることによってデータを探索したいと考えています。 この対話型クエリプロセスには、Sparkなどのシステムが迅速に応答して適応できる必要があります。,

データ統合:ビジネス全体の異なるシステムによって生成されたデータは、レポートや分析のために簡単かつ簡単に組み合わせることができるほどクリーンで一貫性があることはめったにありません。 抽出、変換、およびロード(ETL)プロセスは、多くの場合、異なるシステムからデータをプルし、クリーンアップして標準化し、分析のために別のシステムにロードするために使用されます。 Spark(およびHadoop)は、このETLプロセスに必要なコストと時間を削減するためにますます使用されています。

誰がSparkを使用していますか?,

幅広いテクノロジーベンダーがSparkを迅速にサポートしており、既存のビッグデータ製品を、対話型クエリや機械学習など、Sparkが真の価値を提供する分野に拡張する機会を認識しています。 IBMやHuaweiなどの有名な企業がこの技術に多額の投資を行っており、Sparkの全部または一部に依存するビジネスを構築する新興企業が増えています。, たとえば、2013年にSparkの作成を担当するBerkeleyチームは、Sparkを搭載したホストされたエンドツーエンドのデータプラットフォームを提供するDatabricksを設立しました。 同社は十分な資金を提供しており、247万ドルを2013年、2014年、2016年、2017年に受け取っており、Databricksの従業員はApache Sparkプロジェクトのオープンソースコードの改善と拡張において引き続き重要な役割を果たしている。,

MapR、Cloudera、Hortonworksを含む主要なHadoopベンダーはすべて、既存の製品と一緒にYARNベースのSparkをサポートするように移行し、各ベンダーは顧客の価値を高めるために取り組んでいます。 他の場所では、IBM、Huawei、その他のすべてがApache Sparkに多額の投資を行い、それを自社製品に統合し、Apacheプロジェクトに機能強化と拡張機能を貢献しています。, 中国の検索エンジンBaidu、eコマース運営Taobao、ソーシャルネットワーキング会社Tencentなどのウェブベースの企業は、すべてSparkベースの操作を大規模に実行し、Tencentの800万人のアクティブユーザーが700TB以上のデータを生成し、8,000以上の計算ノードのクラスタ上で処理すると伝えられている。

これらのwebベースの巨人に加えて、製薬会社ノバルティスは、倫理的および契約上の保護措置が維持されていることを保証しながら、研究者の手にモデリングデータを取得するために必要な時間を短縮するためにSparkに依存しています。,

スパークを離れて設定するものは何ですか?

Sparkを選択する理由はたくさんありますが、次の三つが重要です。

シンプルさ:Sparkの機能は、大規模なデータと迅速かつ容易に対話するために特別に設計された豊富なApiのセットを介してアクセスできます。 これらのApiや文化をとるように構成さで簡単なデータの科学者およびアプリケーション開発者が迅速にスパークです。

速度:Sparkは速度のために設計されており、メモリとディスクの両方で動作します。, Sparkを使用して、Databricksのチームは、2014年のDaytona GraySortベンチマークチャレンジ(https://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html)でカリフォルニア大学サンディエゴのチームと一位で結ばれました。 Databricksチームは、ソリッドステートドライブに保存されている100テラバイトのデータをわずか23分で処理でき、前回の勝者はHadoopと異なるクラスタ構成を使用して72分かかりました。 スパークをよりよい支援をする際にはブクエリのデータが保存されます。, このような状況では、SparkはHadoopのMapReduceよりも100倍高速になる可能性があるという主張があります。

サポート:Sparkは、Java、Python、R、Scalaなど、さまざまなプログラミング言語をサポートしています。 Sparkには、Hpe Ezmeral Data Fabric(ファイルシステム、データベース、イベントストア)、Apache Hadoop(HDFS)、Apache HBase、Apache Cassandraなど、Hadoopエコシステムおよびそれ以降の多くの主要なストレージソリューションとの緊密な統合のサポートが含まれています。 さらに、Apache Sparkコミュニティは大規模で活発で国際的です。, Databricks、IBM、および主要なHadoopベンダーすべてを含む、成長する一連の商用プロバイダーは、Sparkベースのソリューションの包括的なサポートを提供します。

データパイプラインのパワー

Sparkのパワーの多くは、非常に異なるテクニックとプロセスを単一の一貫した全体に結合する能力にあります。 Spark以外では、データの選択、さまざまな方法でのデータの変換、および変換された結果の分析という個別のタスクには、Apache Oozieなどの一連の別々の処理フレームワークが簡単に必要になることがあります。, 一方、Sparkは、これらを組み合わせて、バッチ、ストリーミング、およびインタラクティブなワークフローの境界を越えて、ユーザーの生産性を高める機能を提供します。

Sparkジョブは、メモリ内で連続して複数の操作を実行し、メモリ制限によって必要な場合にのみディスクにこぼれます。 Sparkは、これらの異種プロセスの管理を簡素化し、構成が容易で、実行が容易で、保守が容易なデータパイプライン全体を統合します。, ETLなどのユースケースでは、これらのパイプラインは非常に豊富で複雑になり、多数の入力と幅広い処理ステップを統合して、一貫して望ましい結果を

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です