Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-10135

writes to swift fs over partition size leave temp files and empty output file

Log workAgile BoardRank to TopRank to BottomAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.0-alpha1
    • 2.3.0
    • fs
    • None

    Description

      The OpenStack/swift filesystem produces incorrect output when the written objects exceed the configured partition size. After job completion, the expected files in the swift container have length == 0 and a collection of temporary files remain with names that appear to be URLs.

      This can be replicated with teragen against the minicluster using the following command line:
      bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-SNAPSHOT.jar teragen 100000 swift://mycontainer.myservice/teradata

      Where core-site.xml contains:
      <property>
      <name>fs.swift.impl</name>
      <value>org.apache.hadoop.fs.swift.snative.SwiftNativeFileSystem</value>
      </property>
      <property>
      <name>fs.swift.partsize</name>
      <value>1024</value>
      </property>
      <property>
      <name>fs.swift.service.myservice.auth.url</name>
      <value>https://auth.api.rackspacecloud.com/v2.0/tokens</value>
      </property>
      <property>
      <name>fs.swift.service.myservice.username</name>
      <value>[[your-cloud-username]]</value>
      </property>
      <property>
      <name>fs.swift.service.myservice.region</name>
      <value>DFW</value>
      </property>
      <property>
      <name>fs.swift.service.myservice.apikey</name>
      <value>[[your-api-key]]</value>
      </property>
      <property>
      <name>fs.swift.service.myservice.public</name>
      <value>true</value>
      </property>

      Container "mycontainer" should have a collection of objects with names starting with "teradata/part-m-00000". Instead, that file is empty and there is a collection of objects with names like "swift://mycontainer.myservice/teradata/_temporary/0/_temporary/attempt_local415043862_0001_m_000000_0/part-m-00000/000010"

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            highlycaffeinated David Dobbins Assign to me
            highlycaffeinated David Dobbins
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment