2. Hadoop et son écosystème
Au programme…
• Hadoop : qu’est ce que c’est?
– MapReduce
– HDFS
– Yarn
• Ecosystème
– Data Integration
– Batch Processing
– Analytic SQL
– Streaming Processing
– Machine Learning
– Search Engine
– Autre
209/10/2015
3. Hadoop et son écosystème
Qui je suis…
• Khanh Tuong Maudoux
• Développeur Java, JavaEE, BigData indépendant
• blog : blog.jetoile.fr
• @jetoile
• khanh.maudoux@jetoile.fr
309/10/2015
4. Hadoop et son écosystème
Qu’est ce que c’est…
409/10/2015
5. Hadoop et son écosystème
Qu’est ce que c’est…
• BigData => V4
– Volume
– Vélocité
– Variété
– Véracité
• BigData
=> Hadoop?
09/10/2015 5
Ne parlera pas des API de programmations
comme Cascalog/Hive/Pig/Java/…
6. Hadoop et son écosystème
Qu’est ce que c’est…
09/10/2015 6
HDP 2.3
7. Hadoop et son écosystème
Qu’est ce que c’est…
MapReduce
709/10/2015
8. Hadoop et son écosystème
Qu’est ce que c’est…
MapReduce
809/10/2015
9. Hadoop et son écosystème
Qu’est ce que c’est…
MapReduce
9
• Et… Shuffle
09/10/2015
10. Hadoop et son écosystème
Qu’est ce que c’est…
MapReduce
10
• Et… Shuffle
09/10/2015
11. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS
1109/10/2015
12. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS
12
• Hadoop Distributed FileSystem
• FileSystem
– Les données sont écrites dans des blocs gérés par le
FileSystem
• HDFS
– Les données sont écrites dans des blocs gérés par le
HDFS
=> Un fichier dans HDFS est constitué de blocs
09/10/2015
13. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS
13
• Permet :
– La réplication (les blocs sont répliqués) et donc la
résilience
– La scalabilité (les blocs ne sont pas tous sur la même
machine)
– …
09/10/2015
14. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS
14
• Composé de :
– Namespace : structure de répertoire et nom des fichiers
– Metadata : propriétaire, permissions et attributs tels que le timestamp
– Journaling : permet d’assurer l’intégrité et la gestion des erreurs
– Storage : bloc disque, et stockage physique
– Tools : clients et utilitaires pour interagir avec le système de fichiers
09/10/2015
Operating System (OS)
Virtual File System
File System
(ext4, ext3, xfs, …)
Namespace(s)
Metadata
Journaling
Tools
Disk
Storage
15. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS - Architecture
15
• NameNode et DataNode
09/10/2015
NameNode Namespace
Metadata
Block Map
Journaling
Disk
DataNode
Storage
Disk
DataNode
Storage
Disk
Storage
Disk
Bloc report
Contient la localisation réelle
des données (bloc/datanode)
DataNode
16. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS - NameNode
16
• Fonctionnement :
– fsimage : point de controle (checkpoint) persistant contenant les métadonnées
du système de fichiers
– edits : journal des opérations
• fsimage chargé en mémoire
09/10/2015
17. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS - Lecture
1709/10/2015
18. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS - Ecriture
1809/10/2015
19. Hadoop et son écosystème
Qu’est ce que c’est…
HDFS - HA
1909/10/2015
DN DN DN DN
Active NN
Standby
NN
Quorum Journal
Manager /
Shared Storage
Block reports
envoyés aux 2 NN
Toutes les
modifications d’edits
sont partagées
20. Hadoop et son écosystème
Qu’est ce que c’est…
YARN
2009/10/2015
21. Hadoop et son écosystème
Qu’est ce que c’est…
YARN
21
• Avant :
– JobTracker
– TaskTracker
09/10/2015
22. Hadoop et son écosystème
Qu’est ce que c’est…
YARN
22
• Yet Another Ressource Negociator
• Composé de :
– ResourceManager
– NodeManager
– ApplicationMaster
09/10/2015
23. Hadoop et son écosystème
Qu’est ce que c’est…
YARN et HDFS
2309/10/2015
24. Hadoop et son écosystème
Qu’est ce que c’est…
YARN - Multisite
24
• Utilisation du Rack Awareness
• Utilisation du StandByNameNode
• YARN peut décider d’utiliser la DataNode distant
• Dans le cas de l’utilisation d’un StandByNameNode, tous les
DataNodes doivent communiquer avec lui
• Risque si données incohérentes entre des DataNodes localisés sur
des sites différents
• Partage d’informations entre les deux NameNodes
• Gestion de Zookeeper
• Gestion HBase
09/10/2015
25. Hadoop et son écosystème
Ecosystème
2509/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
26. Hadoop et son écosystème
Ecosystème
Data Integration
2609/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
27. Hadoop et son écosystème
Ecosystème
Data Integration
27
• Sqoop
• Flume
• Logstash
• Kafka (messaging)
09/10/2015
28. Hadoop et son écosystème
Ecosystème
Data Integration - Sqoop
28
• Outils permettant de transférer des données en
masse entre Hadoop et un entrepôt de données
structuré tel qu’une base de données
09/10/2015
29. Hadoop et son écosystème
Ecosystème
Data Integration - Flume
29
• Flume est un service distribué, fiable et
hautement disponible servant à la collecte, la
l’agrégation et le déplacement d’une grosse
quantité de données de logs
• Composé de
– Source
– Sink
– Channel
09/10/2015
30. Hadoop et son écosystème
Ecosystème
Data Integration - Logstash
3009/10/2015
• Logstash est un simple agent orienté message
qu’il est possible de configurer pour combiner
différentes fonctions
• Composé de
– Input
– Filter
– Output
31. Hadoop et son écosystème
Ecosystème
Data Integration - Kafka
31
• Système orienté message de type
publish/subscribe implémenté comme système
de traces transactionnel distribué, adapté pour
la consommation de messages en-ligne et hors
ligne
• Service de commit de traces distribué,
partitionné et répliqué
• Les producteurs publient des messages dans
des topics, les consommateurs s'abonnent à ces
sujets et consomment les messages
09/10/2015
32. Hadoop et son écosystème
Ecosystème
Batch Processing
3209/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
33. Hadoop et son écosystème
Ecosystème
Batch Processing
33
• Hive
• Pig
• Cascading
• Spark
09/10/2015
34. Hadoop et son écosystème
Ecosystème
Batch Processing - Hive
34
• Permet l’exécution de requêtes SQL sur un
cluster Hadoop en vue d’analyser et d’agréger
les données.
• Langage de visualisation uniquement
• Offre les connecteurs ODBC/JDBC
09/10/2015
35. Hadoop et son écosystème
Ecosystème
Batch Processing - Pig
35
• Permet le requêtage des données Hadoop à
partir d’un langage de script
• Basé sur un langage de haut niveau permettant
de créer des programmes de type MapReduce
09/10/2015
36. Hadoop et son écosystème
Ecosystème
Batch Processing - Cascading
36
• API de traitement de données et planificateur de
requête pour la définition, le partage et le
traitement de données
09/10/2015
37. Hadoop et son écosystème
Ecosystème
Batch Processing - Spark
37
– Moteur d’analyse multifonction adapté au traitement
rapide de gros volumes de données
– Concurrent de MapReduce
– Basé sur les RDD (Resilient Distributed DataSet)
– Peut s’appuyer sur YARN
09/10/2015
38. Hadoop et son écosystème
Ecosystème
Analytic SQL
3809/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
40. Hadoop et son écosystème
Ecosystème
Analytic SQL - Drill
40
• Système distribué permettant d’effectuer des requêtes sur de
larges données permettant l’analyse interactive des données
en SQL
• Permet de requêter des sources de données hétérogènes :
• MongoDB
• JSON
• HDFS
• Hive
• Classpath
• HBase
• Offre le connecteur ODBC
09/10/2015
41. Hadoop et son écosystème
Ecosystème
Analytic SQL - Impala
41
• Système distribué permettant d’effectuer des
requêtes sur de larges données permettant
l’analyse interactive des données en SQL
• Permet de requêter des sources de données
hétérogènes :
• HDFS
• HBase
• Compatible avec Hive
09/10/2015
42. Hadoop et son écosystème
Ecosystème
Analytic SQL – Spark SQL
42
• Module de Spark offrant une API de plus haut
niveau avec une syntaxe SQL
• Equivalent à Hive mais s’exécutant sur Spark
• Offre le connecteur JDBC
09/10/2015
43. Hadoop et son écosystème
Ecosystème
Analytic SQL – Hawq
43
• Système distribué permettant d’effectuer des
requêtes sur de larges données permettant
l’analyse interactive des données en SQL
• Full compliant SQL
• Offre le connecteur ODBC/JDBC
09/10/2015
44. Hadoop et son écosystème
Ecosystème
Analytic SQL – Presto
44
• Système distribué permettant d’effectuer des requêtes sur de
larges données permettant l’analyse interactive des données
en SQL
• Permet de requêter des sources de données hétérogènes :
– Hive
– HDFS
– Cassandra
• Compatible avec Hive
• ANSI-SQL syntax support (presumably ANSI-92)
• Offre le connecteur JDBC
09/10/2015
45. Hadoop et son écosystème
Ecosystème
Stream Processing
4509/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
46. Hadoop et son écosystème
Ecosystème
Stream Processing
46
• Storm
• Spark Streaming
• Spring XD
• Samza
09/10/2015
47. Hadoop et son écosystème
Ecosystème
Stream Processing - Storm
47
• Système de calcul distribué temps réel
• S’appuie sur les notions de :
• Nimbus Node (~JobTracker)
• Zookeeper
• Supervisor Node (~NodeManager)
• Notions de Spouts/Bolts
• Peut s’appuyer sur YARN
09/10/2015
48. Hadoop et son écosystème
Ecosystème
Stream Processing – Spark Streaming
48
• Module de Spark permettant de traiter des flux
de données qui arrivent en continu, et donc de
traiter ces données au fur et à mesure de leur
arrivée
• Fonctionnement sur le principe de microbatch
09/10/2015
49. Hadoop et son écosystème
Ecosystème
Stream Processing – Spring XD
49
• Basé sur Spring Integration, Spring Batch et
Spring Data
• Offre un DSL qui permet de construire une route
qui est exécuté par des job managé par Spring
Batch en exploitant le provisionning par YARN /
MESOS / Local
09/10/2015
50. Hadoop et son écosystème
Ecosystème
Stream Processing – Samza
5009/10/2015
• Framework permettant de traiter de manière
distribué des flux
• Utilise Kafka, YARN
• Offre la possibilité de faire du windowing
51. Hadoop et son écosystème
Ecosystème
Machine Learning
5109/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
52. Hadoop et son écosystème
Ecosystème
Machine Learning
52
• Mahout
• Spark ML
09/10/2015
53. Hadoop et son écosystème
Ecosystème
Machine Learning - Mahout
53
• Vise à créer des implémentations d’algorithmes
d’apprentissage automatiques et de
dataminings.
• Même si les principaux algorithmes
d’apprentissage se basent sur MapReduce, il n’y
a pas d’obligation à utiliser Hadoop
09/10/2015
54. Hadoop et son écosystème
Ecosystème
Machine Learning – Spark ML
54
• Librairie Spark de machine learning fournissant
les algorithmes de classique (classification,
regression, clustering, collaborative filtering,
dimensionality reduction, …)
09/10/2015
55. Hadoop et son écosystème
Ecosystème
Machine Learning
5509/10/2015
Batch
Processing
Analytic
SQL
Search
Engine
Machine
Learning
Stream
Processing
Workload Management (Yarn)
Storage for any type of data
Unified, Elastic, Resilient, Secure
Data Integration
Filesystem (HDFS)
56. Hadoop et son écosystème
Ecosystème
Search Engine
56
• SolR
• Elastic
09/10/2015
57. Hadoop et son écosystème
Ecosystème
Search Engine – SolR
5709/10/2015
• SolR offre une indexation distribué, répliqué
basé sur Apache Lucene
• Permet la recherche full text, le highlighting, le
facetting, la recherche géospatiale
• Permet l’indexation de documents riches
58. Hadoop et son écosystème
Ecosystème
Search Engine – Elastic
5809/10/2015
• Elastic offre une indexation distribué, répliqué
basé sur Apache Lucene
• Permet la recherche full text, le highlighting, le
facetting, la recherche géospatiale
• Permet l’indexation de documents riches
59. Hadoop et son écosystème
Ecosystème
Autre
5909/10/2015
60. Hadoop et son écosystème
Ecosystème
Autre
60
• HBase
• Phoenix
• Cassandra
• Kudu
• Hive
• Confluent.io
• Oozie
• Ambari
• Zookeeper
• Tez
• Mesos
• Flink
09/10/2015
61. Hadoop et son écosystème
Ecosystème
Autre - HBase
61
• Système de gestion de base de données non-
relationnelles distribué de type orientée
colonnes
• Basés sur une architecture maitre/esclave
(HBase Master et Region Server)
09/10/2015
62. Hadoop et son écosystème
Ecosystème
Autre - Phoenix
6209/10/2015
• Permet de requêter HBase via une interface
SQL en offrant un driver jdbc.
• Phoenix accepte une requête SQL et la traduit
en une série de scan Hbase. Il orchestre ensuite
son exécution pour produire un résultat au
format ResultSet JDBC.
• Les métadonnées de la table sont stockées et
versionnées dans une table HBase.
63. Hadoop et son écosystème
Ecosystème
Autre - Cassandra
6309/10/2015
• Système de gestion de base de données non-
relationnelles distribué de type orientée
colonnes
• Conçu pour être hautement disponible, scalable
linéairement, et sans Single Point Of Failure
64. Hadoop et son écosystème
Ecosystème
Autre - Kudu
6409/10/2015
• Système de gestion de base de données non-
relationnelles distribué de type orientée
colonnes
• Conçu pour offrir de bonnes performances aussi
bien pour les scanne que pour les accès
aléatoire
• Se positionne entre HDFS et HBase
65. Hadoop et son écosystème
Ecosystème
Autre - Hive
65
• Hive
– HiveMetastore
– HiveServer2
– HCatalog
09/10/2015
66. Hadoop et son écosystème
Ecosystème
Autre – Confluent.io
6609/10/2015
• Intégration de :
– Kafka
– Avro
– SchemaRegistry
– Gateway Rest pour lire/écrire dans Kafka
67. Hadoop et son écosystème
Ecosystème
Autre - Oozie
67
• Solution de workflow (au sens ordonnanceur
d’exploitation) utilisée pour gérer et coordonner les
tâches de traitement de données à destination de
Hadoop.
• Integré avec l’écosystème Hadoop :
– MapReduce (Java et Streaming)
– Pig
– Hive
– Sqoop
– Autres (Java ou scripts de type Shell)
09/10/2015
68. Hadoop et son écosystème
Ecosystème
Autre - Ambari
68
• Destiné à la supervision et à l’administration de
clusters Hadoop
• Outil web qui propose un tableau de bord
(visualisation de l’état d’un cluster – état des
services, configuration, supervision, exécution des
jobs, métriques)
• Gestion de configuration permettant de déployer
des services d’Hadoop ou de son écosystème sur
des clusters de machines
09/10/2015
69. Hadoop et son écosystème
Ecosystème
Autre - Zookeeper
69
• Service de coordination des services (et en
l’occurrence des services d’un cluster Hadoop)
• Fournit aux composants Hadoop les
fonctionnalités de distribution
• Indispensable à :
– HBase
– Storm
– Kafka
09/10/2015
70. Hadoop et son écosystème
Ecosystème
Autre - Tez
70
• Remplace MapReduce en utilisant YARN afin de
fournir des requêtes dites “temps réel”
• Utilisable par (work in progress) :
– Hive
– Pig
– Cascading
09/10/2015
71. Hadoop et son écosystème
Ecosystème
Autre - Flink
7109/10/2015
• Alternative à Spark
• Moteur de streaming de flux distribué
• Peut se déployer sur YARN
72. Hadoop et son écosystème
Ecosystème
Autre - Mesos
7209/10/2015
• Alternative à YARN
• Cluster Manager permettant d’abstraire le CPU,
la mémoire, le stockage ainsi que les resources
de calcul
73. Hadoop et son écosystème
Ecosystème
Autre – MaprFS / MaprDB
7309/10/2015
• MapR propose MapR-FS en alternative à HDFS
• MapR propose MapR-DB en alternative à HBase
• Offre les mêmes API (HDFS/HBase)
BigData != Hadoop
Mais souvent Hadoop…!
Cependant Hadoop = écosystème vaste
Faire rappel sur historique Hadoop : v1 puis v2
Données transmises en RPC entre Mapper et Reducer
Pas de logique dans le dataNode : c’est le NameNode qui connait via réception des bloc report
The fsimage file contains a serialized form of all the directory and file
inodes in the filesystem. Each inode is an internal representation of a
file or directory’s metadata and contains such information as the file’s
replication level, modification and access times, access permissions,
block size, and the blocks a file is made up of. For directories, the modification
time, permissions, and quota metadata is stored.
The fsimage file does not record the datanodes on which the blocks are
stored. Instead the namenode keeps this mapping in memory, which it
constructs by asking the datanodes for their block lists when they join
the cluster and periodically afterward to ensure the namenode’s block
mapping is up-to-date.
In a typical HA cluster, two separate machines are configured as NameNodes. At any point in time, exactly one of the NameNodes is in an Active state, and the other is in a Standby state. The Active NameNode is responsible for all client operations in the cluster, while the Standby is simply acting as a slave, maintaining enough state to provide a fast failover if necessary.
In order for the Standby node to keep its state synchronized with the Active node, the current implementation requires that the two nodes both have access to a directory on a shared storage device (eg an NFS mount from a NAS). This restriction will likely be relaxed in future versions.
When any namespace modification is performed by the Active node, it durably logs a record of the modification to an edit log file stored in the shared directory. The Standby node is constantly watching this directory for edits, and as it sees the edits, it applies them to its own namespace. In the event of a failover, the Standby will ensure that it has read all of the edits from the shared storage before promoting itself to the Active state. This ensures that the namespace state is fully synchronized before a failover occurs.
In order to provide a fast failover, it is also necessary that the Standby node have up-to-date information regarding the location of blocks in the cluster. In order to achieve this, the DataNodes are configured with the location of both NameNodes, and send block location information and heartbeats to both.
It is vital for the correct operation of an HA cluster that only one of the NameNodes be Active at a time. Otherwise, the namespace state would quickly diverge between the two, risking data loss or other incorrect results. In order to ensure this property and prevent the so-called "split-brain scenario," the administrator must configure at least one fencing method for the shared storage. During a failover, if it cannot be verified that the previous Active node has relinquished its Active state, the fencing process is responsible for cutting off the previous Active's access to the shared edits storage. This prevents it from making any further edits to the namespace, allowing the new Active to safely proceed with failover.
L’écosystème de Logstash est constitué de 4 composants :
Shipper qui envoie des événements à Logstash.
Broker et Indexer qui reçoivent et indexent les événements.
Search et Stockage qui permettent de rechercher et de stocker les événements.
Web Interface qui est une interface web appelée Kibana.
https://www.elastic.co/guide/en/logstash/current/index.html
Un RDD est une abstraction de collection sur laquelle les opérations sont effectuées de manière distribuée tout en étant tolérante aux pannes matérielles. Le traitement que l’on écrit semble ainsi s’exécuter au sein de notre JVM mais il sera découpé pour s’exécuter sur plusieurs noeuds. En cas de perte d’un noeud, le sous-traitement sera automatiquement relancé sur un autre noeud par le framework, sans que cela impacte le résultat.
Ne supporte pas les insert
Supporte les insert
Ne supporte pas les insert
Seulement insert en fournissant une table
Spouts –sources of streams in a computation (e.g. a Twitter API)
Bolts – process input streams and produce output streams. They can: run functions; filter, aggregate, or join data; or talk to databases.
A Storm cluster is composed of a set of nodes running a Supervisor daemon. The supervisor daemons talk to a single master node running a daemon called Nimbus. The Nimbus daemon is responsible for assigning work and managing resources in the cluster
Storm uses ZeroMQ for non-durable communication between bolts, which enables extremely low latency transmission of tuples. Samza does not have an equivalent mechanism, and always writes task output to a stream.
Samza is made up of three layers:
A streaming layer.
An execution layer.
A processing layer.
Samza provides out of the box support for all three layers.
Streaming: Kafka
Execution: YARN
Processing: Samza API
Storm and Samza are fairly similar. Both systems provide many of the same high-level features: a partitioned stream model, a distributed execution environment, an API for stream processing, fault tolerance, Kafka integration, etc.
Storm and Samza use different words for similar concepts: spouts in Storm are similar to stream consumers in Samza, bolts are similar to tasks, and tuples are similar to messages in Samza. Storm also has some additional building blocks which don’t have direct equivalents in Samza.
currently only at-least-once delivery, but support for exactly-once semantics is planned
Solr is highly reliable, scalable and fault tolerant, providing distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites.
Its major features include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, rich document (e.g., Word, PDF) handling, and geospatial search. Solr is highly scalable, providing distributed search and index replication, and it powers the search and navigation features of many of the world's largest internet sites.
The attachment type is provided as a plugin extension. It uses Apache Tika behind the scene.
Kudu is an open source storage engine for structured data
which supports low-latency random access together with effi-
cient analytical access patterns. Kudu distributes data using
horizontal partitioning and replicates each partition using
Raft consensus, providing low mean-time-to-recovery and
low tail latencies. Kudu is designed within the context of
the Hadoop ecosystem and supports many modes of access
via tools such as Cloudera Impala, Apache Spark,
and MapReduce
Structured storage in the Hadoop ecosystem has typically
been achieved in two ways: for static data sets, data is
typically stored on HDFS using binary data formats such
as Apache Avro[1] or Apache Parquet[3]. However, neither
HDFS nor these formats has any provision for updating individual
records, or for efficient random access. Mutable data
sets are typically stored in semi-structured stores such as
Apache HBase[2] or Apache Cassandra[21]. These systems
allow for low-latency record-level reads and writes, but lag
far behind the static file formats in terms of sequential read
throughput for applications such as SQL-based analytics or
machine learning.
Ambari se positionne en alternative à Chef, Puppet pour les solutions génériques ou encore à Cloudera Manager pour le monde Hadoop.
Flink’s core is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data streams.
Flink includes several APIs for creating applications that use the Flink engine:
DataSet API for static data embedded in Java, Scala, and Python,
DataStream API for unbounded streams embedded in Java and Scala, and
Table API with a SQL-like expression language embedded in Java and Scala.
Flink also bundles libraries for domain-specific use cases:
Machine Learning library, and
Gelly, a graph processing API and library.
You can integrate Flink easily with other well-known open source systems both for data input and output as well as deployment.
Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.