EMR's S3 does extra things, which is why netflix used injection tricks to
add theirs on top.

For blobstores, key use cases are

   1. -general source of low-rate-of-change artifacts
   2. -input for analysis jobs
   3. -output from them
   4. -chained operations
   5. storage of data to outlive the EMR cluster

#1 isn't a problem assuming the velocity of the artifacts is pretty low.

#2 -OK for data written "a while" earlier, provided there isn't an ongoing
partition.

#3 -speculation relies on atomic rename that fails if dest dir exists.
Blobstores don't have this and do rename as
   (i): check
  (iii) create root path
  (iii) copy of individual items below path
  (iv) delete of source.

The race between (i) and (ii) exists, and if the object store doesn't even
do create consistency (e.g AWS S3 US-East, but not the others [1]). This
means there's a risk of two committing reducers mixing outputs (risk low,
requires both processes to commit simultaneously)

#4 is trouble -anything waiting for one MR job to finish may start when it
finishes, but when job #2 kicks off and does an of the dir/path listing
methods, it may get an incomplete list of children -and hence, incomplete
list of output files.

That's the trouble. If people follow the best practise -HDFS for
intermediate work, S3 for final output, all is well. Netflix use S3 as the
output of all work, so they can schedule analytics on any Hadoop cluster
they have, and at the scale they run at they hit this problem. Other people
may have -just not noticed.

" I fear that a lot of applications are not ready for eventual
consistency, and may never be"

Exactly: i have code that uses HDFS to co-ordinate, and will never work on
an object store that doesn't have atomic/consistent ops

"leading to the feeling that Hadoop on S3 is buggy"

https://issues.apache.org/jira/browse/HADOOP-9577  -filed by someone @amazon


-Steve

HADOOP-9565 says "add a marker" :
https://issues.apache.org/jira/browse/HADOOP-9565

HADOOP-10373 goes further and says "move the s3 & s3n code into
hadoop-tools/hadoop-aws

https://issues.apache.org/jira/browse/HADOOP-10373

This will make it possible to swap in versions compiled against the same
Hadoop release, without having to build your own hadoop JARs

steve

(who learned too much about object stores  and the FileSystem class while
doing the swift:// coding)


[1] http://aws.amazon.com/s3/faqs/


On 6 March 2014 18:47, Colin McCabe <cmcc...@alumni.cmu.edu> wrote:

> NetFlix's Apache-licensed S3mper system provides consistency for an
> S3-backed store.
> http://techblog.netflix.com/2014/01/s3mper-consistency-in-cloud.html
>
> It would be nice to see this or something like it integrated with
> Hadoop.  I fear that a lot of applications are not ready for eventual
> consistency, and may never be, leading to the feeling that Hadoop on
> S3 is buggy.
>
> Colin
>
> On Thu, Mar 6, 2014 at 10:42 AM, Jay Vyas <jayunit...@gmail.com> wrote:
> > do you consider that native S3 FS  a real "reference implementation" for
> > blob stores? or just something that , by mere chance, we are able to use
> as
> > a ref. impl.
>

-- 
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to 
which it is addressed and may contain information that is confidential, 
privileged and exempt from disclosure under applicable law. If the reader 
of this message is not the intended recipient, you are hereby notified that 
any printing, copying, dissemination, distribution, disclosure or 
forwarding of this communication is strictly prohibited. If you have 
received this communication in error, please contact the sender immediately 
and delete it from your system. Thank You.

Reply via email to