Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-25855

Don't use Erasure Coding for event log files

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.0
    • Fix Version/s: 3.0.0
    • Component/s: Spark Core
    • Labels:
      None

      Description

      While testing spark with hdfs erasure coding (new in hadoop 3), we ran into a bug with the event logs. The main issue was a bug in hdfs (HDFS-14027), but it did make us wonder whether Spark should be using EC for event log files in general. Its a poor choice because EC currently implements hflush() or hsync() as no-ops, which mean you won't see anything in your event logs until the app is complete. That isn't necessarily a bug, but isn't really great. So I think we should ensure EC is always off for event logs.

      IIUC there is not a problem with applications which die without properly closing the outputstream. It'll take a while for the NN to realize the client is gone and finish the block, but the data should get there eventually.

      Also related are SPARK-24787 & SPARK-19531.

      The space savings from EC would be nice as the event logs can get somewhat large, but I think other factors outweigh this.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                irashid Imran Rashid
                Reporter:
                irashid Imran Rashid
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: