私は200MM以上の価値があるフラットファイル約10枚のアプリケーションを持っています。ビジネスロジックは、すべてを順次結合することに関係します。スパークRDD - シャッフルを避ける - パーティション分割は膨大なファイルを処理するのに役立ちますか?
私の環境: 1マスター - 3つの(テストのために私は、各ノードに1GBのメモリを割り当てた)スレーブ
は、コードのほとんどちょうどそれぞれが
RDD1 = sc.textFile(file1).mapToPair(..)
RDD2 = sc.textFile(file2).mapToPair(..)
join = RDD1.join(RDD2).map(peopleObject)
どれ提案の参加については、以下を行いますチューニング、再パーティション化、並列化など..?そうであれば、パーティション分割に適した数を提示するベストプラクティスですか?私たちは常に1 RDDに参加している場合は、現在の設定ジョブは時間以上かかり、私はほとんどすべてのファイルのシャッフルの書き込みを見ると
>は3ギガバイト
ファイル:根拠は、Spark-UIから取られた以下の美しいPICに提示されていますか?いくつのパーティションがありますか? – marios
No。それらはaws s3にあり、まだパーティションを作成していませんが、内部的にはデフォルトの並列処理を使用している可能性があります。 – sve
RDD1.partitions.sizeを実行するか、「RDD1.toDebugString」を実行して、どのくらいのパーティションの数を確認できますか? – marios