2016-11-05 21 views
1

並列とメモリ内で大規模なデータを処理するという点で、私はスパークの利点を理解しています。なぜS3から非常に速く読み書きするのですか

しかし、S3との間でデータを読み書きする際に、S3への読み書きのボトルネックはありません。それはS3ストレージサービスによって効率的な形で処理されますか? S3はストレージを分散していますか?可能であれば、いくつかの説明を提供してください。 AWS内

+0

おかしい、私はいつも自分がなぜそんなに遅いのかと尋ねる。 –

+1

笑。私は、ハードドライブのI/Oレートが大きなボトルネックになっている非分散型ストレージシステムと比べて、意味があります。 – Dnaiel

答えて

5

唯一のボトルネックは、以下のとおりです。

  • インスタンスタイプ(基本的には、より大きなインスタンスはより多くのネットワーク帯域幅を持っている)
  • Amazon EBS storage volumes(プロビジョニングIOPS支持体の速度に基づいてAmazon EC2インスタンス上network bandwidth limitation、最大20,000 IOPS)

Amazon EC2とAmazon S3の間など、リージョン内のスループットは非常に高く、データ転送の能力は制限されません(EC2ネットワーク帯域上記の幅制限)。

Amazon S3は、リージョン内の複数の可用性ゾーンにまたがる多数のサーバーに分散しています。非常に高速では、Amazon S3にはいくつか推奨されているRequest Rate and Performance Considerationsがありますが、これは特定のバケットに対して1秒あたり300件以上のPUT/LIST/DELETE要求または1秒あたり800件以上のGET要求を行う場合のみです。

Apache Sparkは、通常、複数のノードのに配置されます。各ノードは、そのインスタンスタイプに基づいて利用可能なネットワーク帯域幅を持っています。 並列性のSparkは、単一のインスタンスで実行できるよりもはるかに高速にAmazon S3との間でデータを転送できることを意味します。

+0

@jrotensteinありがとう!具体的には、S3で教科書データのX TB/PBを保存し、スパーククラスターの典型的な語数マップ縮小の例を実行します。また、データの半分がRAMに収まると仮定します(すべてのスパーク作業者のラムの合計として定義されるラムによって)。データをmemに格納する時間とマップを実行する時間の割合と、(ワード、カウント)タプルをディスクに書き戻す時間とステップを減らすものは何でしょうか。各作業者のCPU速度については、標準のEC2インスタンス(つまり、r3.2xlargeまたはそのようなsthg)を想定します。 – Dnaiel

+1

あなたはスパークジョブを実行し、それを理解するために統計を見なければなりません。最初のRun Throughデータは、Sparkにロードされたとき(おそらくはキャッシュされているとき)には常に最も遅くなります。そのデータへの後続のアクセスははるかに高速になります。したがって、スパークは、同じデータを複数回処理している状況(たとえば機械学習)に適しています。一度データにアクセスするだけであれば、非メモリ常駐クエリエンジンに比べて多くの利点はありません。 –

1

Apache Sparkは、EMRのAmazonのクライアントライブラリまたは他の場所のApache HadoopチームからS3への通話を行います。 s3a:// URLを使用する場合は、最新のASFクライアントを使用しています。

私たちは高速化に多くの作業をしています。HADOOP-11694を参照してください。 (コードであまりにも多くの チェック)が存在し

パフォーマンスキラーは、ファイルをワークアウトHEADリクエストの

  1. 過剰な数であることが判明しています。修正:これらを減らす

  2. シーク時の接続を閉じて再開する。修正:(a)レイジーシーク( シークはread()であり、seek()コールではない)、(b)前方にシークして のデータを読み込み、廃棄する。でも数百KB (メーリングリストへ、など)までの効率的なバイナリORC /寄せ木ファイルの場合

  3. 、代わりに読み込み、ソースファイルの完全なGETをしようとしない特殊なfadvise =ランダムモード、 を追加ブロック内の 私たちが前向きにやりたい場合は、ブロックの残りの部分が破棄され、HTTP 1.1接続が再利用されます。接続を中止して新しいものを再交渉する必要はありません。 それはで(多分CDHいくつかの時間では、Hadoopの2.8)(今後、HDP 2.5(出荷)で)新しいものには触れませんが、Spark and Object Stores

いくつかの詳細は、先月からこの話であります深さパフォーマンスにはさまざまな設定が推奨されますが、これは今日有効です。

また、使用する圧縮がsplittable(LZO、snappy、...)であること、ファイルのサイズが小さすぎてディレクトリの一覧を表示して開くことができないことを確認してください。

関連する問題