450 likes | 461 Views
Explore the concept of virtualizing the Hadoop File System (HDFS) and its different methods, advantages, and considerations. Learn when to choose HDFS storage virtualization.
E N D
What does it mean to virtualize the Hadoop File System? • Tom Phelan • Chief Architect for BlueData
Outline • There are questions to be answered … • Three “What”’s: • What is HDFS? • What does it mean to virtualize HDFS? • What are the different methods of virtualization? • Instances • Advantages and considerations • And a “When”: • When to choose HDFS storage virtualization?
What is HDFS? Before we can virtualize it, we need to understand what “it” is.
HDFS It is a distributed file system built with NameNodes and DataNodes Source: David Engfer via slidershare.net http://image.slidesharecdn.com/introtohadoop-javamug-110414122200-phpapp01/95/intro-to-the-hadoop-stack-april-2011-javamug-14-728.jpg?cb=1302793500
HDFS Implementation HDFS Implementation • hadoop-hdfs.jar • org.apache.hadoop.fs.FileSystem • org.apache.hadoop.hdfs.FileSystem • org.apache.hadoop.hdfs.DistributedFileSystem
HDFS Implementation It is a stack of Java code used by Hadoop applications to access data. YARN HDFS Implementation Hadoop Distributed File System API/Java Class HDFS Implementation Distributed File System Client Protocol at TCP/IP level – “over the wire” HDFS Implementation
HDFS Layers of Potential Virtualization • Generic Java Classes • Java class org.apache.hadoop.fs.FileSystem • HDFS over the wire protocol • Java class org.apache.hadoop.hdfs.DFSClient
HDFS Implementation Wire Protocol Host HDFS Implementation Host Node Manager Node Manager Local Disk Local Disk Resource Manager NameNode Local Disk Local Disk DataNode App App HDFS Impl HDFS Impl DFSClient DFSClient Host DataNode
HDFS Virtualization The virtualization of either the HDFS Implementation or the Protocols
Outline • There are questions to be answered … • Three “What”’s: • What is HDFS? • What does it mean to virtualize HDFS? • What are the different methods of virtualization? • Instances • Advantages and considerations • And a “When”: • When to choose HDFS storage virtualization?
HDFS Virtualization Methods • Virtualize the HDFS Implementation • Implement one of the Hadoop Compatible File System (HCFS) Protocols • Implement a HCFS via the over-the-wire protocol (hdfs.DFSClient) • Implement a HCFS via the FileSystem protocol (fs.FileSystem)
Virtualize the HDFS Implementation • This is the only method of HDFS virtualization that requires Hadoop compute virtualization. • Simple. Install a Hadoop distro into a cluster of virtualized compute nodes and run the HDFS services in the cluster storing data on vdisks/vmdks. • Instances of this type of HDFS virtualization include: • VMware BDE • Apache OpenStack Sahara • Cloudera Director • Hortonworks Cloudbreak
Virtualize the HDFS Implementation VM HOST Resource Manager NameNode Node Manager Node Manager App App HOST VM VM HOST HDFS Impl HDFS Impl DFSClient DFSClient Local Disk DataNode DataNode Local Disk Local Disk Local Disk
Virtualize the HDFS Implementation • Advantages: • Simple • No new Java code • Compute/data locality • Considerations: • Requires data ingest time • The clusters become stateful
HDFS Virtualization Methods • Virtualize the HDFS Implementation • Implement a Hadoop Compatible File System – HCFS • Implement a HCFS via the over-the-wire protocol (hdfs.DFSClient) • Implement a HCFS via the FileSystem protocol (fs.FileSystem)
Implement a HCFS via the over-the-wire protocol Use the unmodified hadoop-hdfs jar fs.defaultfs hdfs://1.2.3.4:8020/path • Instance: • EMC Isilon
Implement a HCFS via the over-the-wire protocol Host Storage Service Resource Manager NameNode Node Manager Node Manager Local Disk Local Disk Local Disk Local Disk Local Disk Local Disk App App Host Host HDFS Impl HDFS Impl DFSClient DFSClient DataNode DataNode
Implement a HCFS via the over-the-wire protocol • Advantages: • Multi-protocol • No new Java code • Enterprise storage services • Considerations: • Open source / proprietary • No compute / data locality
HDFS Virtualization Methods • Virtualize the HDFS Implementation • Implement a Hadoop Compatible File System – HCFS • Implement a HCFS via the over-the-wire protocol (hdfs.DFSClient) • Implement a HCFS via the FileSystem protocol (fs.FileSystem)
Implement a HCFS via the FileSystem Java classes Write the java code that implements the class, build a jar file, put the jar file in the YARN services class path edit the core-site.xml file • Instances: • S3 and S3a/S3n – org.apache.hadoop.fs.FileSystem • https://github.com/Aloisius/hadoop-s3a • GlusterFS - org.apache.hadoop.fs.FilterFileSystem • https://github.com/gluster/glusterfs-hadoop • Tachyon – org.apache.hadoop.fs.FileSystem • https://github.com/amplab/tachyon • Apache Ignite – org.apache.hadoop.fs.AbstractFileSystem • https://github.com/apache/ignite
Implement a HCFS via the FileSystem Java classes Host Storage Service Local Disk Local Disk Resource Manager NameNode Local Disk Local Disk Host Host Node Manager Node Manager Storage Service Storage Service DataNode App DataNode App HDFS Impl CustomFS Impl HDFS Impl CustomFS Impl DFSClient DFSClient
Implement a HCFS via the FileSystem Java classes Host Storage Service Resource Manager NameNode Local Disk Local Disk Local Disk Local Disk Local Disk Local Disk Host Host Node Manager Node Manager App Storage Service DataNode DataNode App Storage Service CustomFS Impl HDFS Impl CustomFS Impl HDFS Impl DFSClient DFSClient
Implement a HCFS via the FileSystem Java classes • Advantages: • Open source / proprietary • Multiple file access protocols supported • Considerations: • These are file systems • New Java code • Possibly no compute / data locality • May lag latest HDFS feature set
HDFS Virtualization Is there another way?
HDFS Virtualization • Virtualize the HDFS Implementation • Implement a Hadoop Compatible File System – HCFS • Implement a HCFS via the over-the-wire protocol • Implement a HCFS via the FileSystem Java classes • Virtualize the Hadoop Compatible File System Protocol
Virtualize the Hadoop Compatible File System Protocol Translate the Hadoop File System Calls into native calls to the BackEnd File systems Insert intelligent caching layer • Instance: • BlueData EPIC software – org.apache.fs.FileSystem
Virtualize the Hadoop Compatible File System Protocol Host Host Storage Service Resource Manager NameNode Local Disk Local Disk Host Host Node Manager DTAP Service DTAP Service Node Manager App App Local Disk DataNode DataNode HDFS Impl DTAP Impl Local Disk HDFS Impl Local Disk DTAP Impl DFSClient Local Disk DFSClient
HDFS mem cache Page Cache DataNode page HDFS Implementation DFSClient Application is cache aware
Extend mem cache to any File System or Object storage Page Cache HDFS GlusterFS Object Store page DTAP Service DTAP FileSystem Implementation Application is cache unaware
Virtualize the Hadoop Compatible File System Protocol • Advantages: • Not a file system • Transparent in memory cache • write back, read ahead • Supports multiple protocols • Supports compute / data locality • Considerations: • New Java code • Open source / proprietary • May lag latest HDFS feature set
Outline • There are questions to be answered … • Three “What”’s: • What is HDFS? • What does it mean to virtualize HDFS? • What are the different methods of virtualization? • Instances • Advantages and considerations • And a “When”: • When to choose HDFS storage virtualization?
A Few Words about Performance • Performance measurements are an art as well as a science • Bottlenecks in applications • Bottlenecks in infrastructure • network • CPU • disk • Configuration is key • block size • distro • security
Virtualize the HDFS Implementation Performance – VMware BDE Source of graph: VMware Technical Paper – Virtualized Hadoop Performance with VMware vSphere 6 on High Performance Servers
Performance – Isilon Implement a HCFS via the over-the-wire protocol Sourceof graph: Stefan Radtke blog post http://stefanradtke.blogspot.com/2015/05/comparing-hadoop-performance-on-das-and.html
Performance – Tachyon Implement a HCFS via the FileSystem Java classes Source of graph: Haoyuan Li https://spark-summit.org/2014/wp-content/uploads/2014/07/Tachyon-Further-Improve-Sparks-Performance-Haoyuan-Li.pdf
Performance – BlueData Virtualize the Hadoop Compatible File System Protocol Source of Graph: BlueData customer proof-of-concept results
Virtualized HDFS solutions provide good performance Even with remote storage Even in virtualized environments
When it comes to Hadoop storage virtualization, speed is not the whole story • Other factors to consider when implementing a virtualized HDFS option: • Use of a virtualized compute environment • Open source / proprietary solution • Required Hadoop File System features • Lifespan of Hadoop cluster
When it comes to Hadoop storage virtualization, speed is not the whole story • Other factors to consider when selecting storage: • Data accessibility • Hadoop File System protocol • NFS, object store, other protocols • Enterprise storage services • data protection • geographical replication • offline backup
Consider a Virtualized HDFS Solution When any of the following are true: • Hadoop and non-Hadoop applications are required to access the same data • Do not want to replicate the data • Enterprise storage data services required • Need to run Hadoop in a virtual compute environment
Hadoop File System Volume, Velocity, Variety Virtualization
Q & A • twitter: @tapbluedata • email: tap@bluedata.com • www.bluedata.com • Visit our booth in the Expo