Download - Building the world with Elastic Map Reduce

Transcript
Page 1: Building the world with Elastic Map Reduce

apps on maps...

Page 2: Building the world with Elastic Map Reduce

Building the World with Elastic Map Reduce

Oliver Norton, Technical DirectorTim Jenks, Technical Lead

Page 3: Building the world with Elastic Map Reduce
Page 4: Building the world with Elastic Map Reduce
Page 5: Building the world with Elastic Map Reduce
Page 6: Building the world with Elastic Map Reduce
Page 7: Building the world with Elastic Map Reduce
Page 8: Building the world with Elastic Map Reduce

appsonmaps.com

AS3 SDK – Apps in Browser

JS API – Embed on your website

IOS SDK – Mobile, coming Q4 2012

Page 9: Building the world with Elastic Map Reduce

social media

Page 10: Building the world with Elastic Map Reduce

social commerce

Page 11: Building the world with Elastic Map Reduce

traffic updates

Page 12: Building the world with Elastic Map Reduce

journey planning

Page 13: Building the world with Elastic Map Reduce

worldflightclub.com

flying like a bird

World Flight Club on YouTube

Page 15: Building the world with Elastic Map Reduce

photographic maps

Photographic-based maps ….

Page 16: Building the world with Elastic Map Reduce
Page 17: Building the world with Elastic Map Reduce
Page 18: Building the world with Elastic Map Reduce
Page 19: Building the world with Elastic Map Reduce

layered data

We fuse layered data to procedurally generate our maps(using AWS’ Elastic Map Reduce)

Page 20: Building the world with Elastic Map Reduce
Page 21: Building the world with Elastic Map Reduce
Page 22: Building the world with Elastic Map Reduce
Page 23: Building the world with Elastic Map Reduce
Page 24: Building the world with Elastic Map Reduce
Page 25: Building the world with Elastic Map Reduce
Page 26: Building the world with Elastic Map Reduce

streamed

All built & served from off-the-shelf Amazon Web Service infrastructure

Page 27: Building the world with Elastic Map Reduce

pipeline

Page 28: Building the world with Elastic Map Reduce

data size

Over 2TB Data

Terrain:GB (10m, ¼ million Km2)US (10m, 40x GB)

Buildings :GB (full coverage)

US (120 cities)

Roads: GB (¼ million miles)

US (4 million miles)

Processing this can start to be expensive $$$

Page 29: Building the world with Elastic Map Reduce
Page 30: Building the world with Elastic Map Reduce

before

• Limited scalability -> 60 desktop spec machines

• Multi-TB SAN with a £10k/year maintenance cost

• In house build that needed maintaining

• 10mbit/sec symmetric internet to upload TBs of data

• 3 developers knew how to run builds

• Electric costs -> who knows…

Page 31: Building the world with Elastic Map Reduce

now

On Amazon Elastic Map Reduce

Page 32: Building the world with Elastic Map Reduce

now

• Scalability -> 800 m1.large instances

• Off shelf tech that’s discoverable (hadoop, MRJob)

• Maintenance reduced

• Data is already in cloud (source, and destination)

• More predictable costs (and happier costs, with spot pricing)

• DevOps benefits: Now any engineer can write and run jobs, not just 3

Page 33: Building the world with Elastic Map Reduce

pipeline

AWS

S3AWS

EMR AWS

S3AWS

CloudFront

AWS

EC2

Page 34: Building the world with Elastic Map Reduce

mrjob

• MRjob from Yelp

• http://github.com/Yelp/mrjob

Page 35: Building the world with Elastic Map Reduce

800 machines in 20linesclass MyMapReduceJob(MRJob): def mapper_init(self): self.__mapper = # wire up mapper

def mapper(self, key, line): # perform map work for key, value in self.__mapper.map(line, None): yield str(key), value

def reducer_init(self): self.__reducer = # wire up reducer

def reducer(self, key, values): # perform reduce work result = self.__reducer.reduce(key, values) if result: yield key, "built successfully" else: yield key, "failed"

if __name__ == '__main__': MyMapReduceJob.run()

Page 36: Building the world with Elastic Map Reduce

amazon emr

Processing Complexity X Data Size

Page 37: Building the world with Elastic Map Reduce

thanks

appsonmaps.com

Twitter: @eeGeo