SlideShare a Scribd company logo
1 of 40
Making Distributed Data
Persistent Services Elastic
(Without Losing All Your Data)
CEO of Elodina, Inc. Elodina http://www.elodina.net/ is a startup focusing
on the support & maintenance of third party open source software (like
Mesos frameworks) and offering SaaS based solutions for those
systems. Elodina started as Big Data Open Source Security
http://stealth.ly and has been working for the last couple of years on
implementing and assisting organizations with their Kafka, Mesos,
Hadoop, Cassandra, Accumulo, Storm, Spark, etc, Big Data systems.
Twitter: https://twitter.com/allthingshadoop
LinkedIn: https://www.linkedin.com/in/charmalloc
Joe Stein
◉ Mesos Overview
◉ Roles, Attributes, Constraints, Modules, Hooks
◉ Marathon, Kafka, Cassandra, HDFS, MySQL, YARN and
more!
Overview
Apache Mesos Overview
Papers
◉ Mesos: A Platform for Fine-Grained Resource Sharing in the
Data Center
https://www.cs.berkeley.edu/~alig/papers/mesos.pdf
◉ Omega: flexible, scalable schedulers for large compute clusters
http://eurosys2013.tudos.org/wp-
content/uploads/2013/paper/Schwarzkopf.pdf
◉ Large-scale cluster management at Google with Borg
http://research.google.com/pubs/pub43438.html
Static partitioning
Static partitioning
Static partitioning
Static partitioning
Better option
Data Center Operating System
Mesos
● Scalability to 10,000s of nodes
● Fault-tolerant replicated master and slaves using ZooKeeper
● Support for Docker containers
● Native isolation between tasks with Linux Containers
● Multi-resource scheduling (memory, CPU, disk, and ports)
● Java, Python and C++ APIs for developing new parallel
applications
● Web UI for viewing cluster state
Mesos
Sample Frameworks
C++ - https://github.com/apache/mesos/tree/master/src/examples
Java - https://github.com/apache/mesos/tree/master/src/examples/java
Python - https://github.com/apache/mesos/tree/master/src/examples/python
Scala - https://github.com/mesosphere/scala-sbt-mesos-framework.g8
Go - https://github.com/mesosphere/mesos-go
Roles, Attributes, Constraints, Modules, Hooks
Roles
Total consumable resources per slave, in the form 'name(role):value;name(role):value...'. This value can be set
to limit resources per role, or to overstate the number of resources that are available to the slave.
--resources="cpus(*):8; mem(*):15360; disk(*):710534; ports(*):[31000-32000]"
--resources="cpus(prod):8; cpus(stage):2 mem(*):15360; disk(*):710534; ports(*):[31000-32000]"
All * roles will be detected, so you can specify only the resources that are not all roles (*). --
resources="cpus(prod):8; cpus(stage)"
Frameworks bind a specific roles or any. A default roll (instead of *) can also be configured.
Roles can be used to isolate and segregate frameworks.
Attributes
The Mesos system has two basic methods to describe the
slaves that comprise a cluster. One of these is managed
by the Mesos master, the other is simply passed onwards
to the frameworks using the cluster.
--attributes='disks:sata;raid:jbod;dc:1;rack:3'
Constraints
Constraints control where apps run to
allow optimizing for fault tolerance or
locality. Constraints are made up of
three parts: a field name, an operator,
and an optional parameter. The field
can be the slave hostname or any
Mesos slave attribute.
◉ UNIQUE
◉ CLUSTER
◉ GROUP_BY
◉ LIKE
◉ UNLIKE
Modules & Hooks
◉ Plugable Allocator
◉ Plugable Isolator
◉ Subverting environment variables
◉ Decoration of label task
Docs http://mesos.apache.org/documentation/latest/modules/
Sample Code https://github.com/mesos/modules
Future release(s) to make things even better!
MESOS-2018 Dynamic Reservations
MESOS-1554 Persistent resources support for storage-like
services
MESOS-1279 Add resize task primitive
MESOS-1607 Optimistic Offers
Marathon
Marathon
https://github.com/mesosphere/marathon
Cluster-wide init and control system for
services in cgroups or docker based on
Apache Mesos
◉ REST API
◉ Supports Constraints
◉ Discovery
◉ Health checks
◉ Deployments
Apache Kafka with Apache Mesos
mesos/kafka
https://github.com/mesos/kafka
Goals we set out with
● smart broker.id assignment.
● preservation of broker placement (through constraints
and/or new features).
● ability to-do configuration changes.
● rolling restarts (for things like configuration changes).
● scaling the cluster up and down with automatic,
programmatic and manual options.
● smart partition assignment via constraints visa vi
roles, resources and attributes.
Scheduler
● Provides the operational automation for a Kafka Cluster.
● Manages the changes to the broker's configuration.
● Exposes a REST API for the CLI to use or any other
client.
● Runs on Marathon for high availability.
Executor
● The executor interacts with the kafka broker as an
intermediary to the scheduler
Scheduler & Executor
CLI & REST API
● scheduler - starts the scheduler.
● add - adds one more more brokers to the cluster.
● update - changes resources, constraints or broker properties one or more
brokers.
● remove - take a broker out of the cluster.
● start - starts a broker up.
● stop - this can either a graceful shutdown or will force kill it (./kafka-mesos.sh
help stop)
● rebalance - allows you to rebalance a cluster either by selecting the brokers
or topics to rebalance. Manual assignment is still possible using the Apache
Kafka project tools. Rebalance can also change the replication factor on a
topic.
● help - ./kafka-mesos.sh help || ./kafka-mesos.sh help {command}
Launch 20 brokers in seconds
./kafka-mesos.sh add 1000..1019 --cpus 0.01 --heap 128 --mem 256 --options num.io.threads=1
./kafka-mesos.sh start 1000..1019
Kafka is available on DCOS
https://docs.mesosphere.com/services/kafka/
Mesosphere DCOS
Apache Cassandra with Apache
Mesos
Cassandra on Mesos
https://github.com/mesosphere/cassandra-mesos
The Mesos scheduler is the component with the most
high-level intelligence in the framework. It will need to
possess the ability to bootstrap a ring and distribute
the correct configuration to all subsequently started
nodes. The Scheduler will also be responsible for
orchestrating all tasks with regard to restarting nodes
and triggering and monitoring periodic administrative
tasks required by a node.
Cassandra Scheduler
◉ Bootstrapping a ring
◉ Adding nodes to a ring
◉ Restarting a node that has crashed
◉ Providing configuration to nodes
o Seed nodes, Snitch Class, JVM
OPTS
◉ Scheduling and running administrative
utilities
o nodetool repair
o nodetool cleanup
◉ Registers with a failover timeout
◉ Supports framework authentication
◉ Declines offers to resources it
doesn't need
◉ Only use necessary fraction of
offers
◉ Deal with lost tasks
◉ Does not rely on in-memory state
◉ Verifies supported Mesos Version
◉ Supports roles
◉ Able to provide set of ports to be
used by Nodes
◉ Initial implementation will be for a
static set of ports with a potential
for longer term dynamic port usage.
Cassandra Executor
◉ Monitor health of running node
◉ Use JMX Mbeans for interfacing
with Cassandra Server Process
◉ Communicate results of
administrative actions via
StatusUpdates to scheduler
when necessary
◉ Does not rely on file system
state outside sandbox
◉ Pure libprocess
communication with Scheduler
leveraging StatusUpdate
◉ Does not rely on running on a
particular slave node
◉ Data directories will be
created and managed by
Mesos leveraging the features
provided in MESOS-1554
Apache HDFS with Apache Mesos
HDFS on Mesos
https://github.com/mesosphere/hdfs
◉ 3 journal nodes
◉ 2 name nodes (active/standby)
◉ data nodes, lots of them!
◉ Fault tolerance more
than just what Hadoop
gives.
◉ Ease of configuration and
distributing nodes.
◉ Elastic DFS
◉ Run multiple frameworks
at a time for new
solutions
MySQL with Apache Mesos
MySQL on Mesos (Apache Incubating)
◉ Open sourced by Twitter https://github.com/twitter/mysos
◉ Moving to Apache https://twitter.com/ApacheMysos
◉ Dramatically simplifies the management of a MySQL cluster:
o Efficient hardware utilization through multi-tenancy (in performance-
isolated containers)
o High reliability through preserving the MySQL state during failure and
automatic backing up to/restoring from HDFS
o An automated self-service option for bringing up new MySQL clusters
o High availability through automatic MySQL master failover
o An elastic solution that allows users to easily scale up and down a MySQL
cluster by changing the number of slave instances
Questions?
Joe Stein
http://www.elodina.net

More Related Content

What's hot

Introduction to Mesos
Introduction to MesosIntroduction to Mesos
Introduction to Mesos
koboltmarky
 
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
DataStax
 

What's hot (20)

Ceph-Mesos framework
Ceph-Mesos frameworkCeph-Mesos framework
Ceph-Mesos framework
 
Apache Mesos
Apache MesosApache Mesos
Apache Mesos
 
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloReal-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
 
Introduction of mesos persistent storage
Introduction of mesos persistent storageIntroduction of mesos persistent storage
Introduction of mesos persistent storage
 
Introduction to Mesos
Introduction to MesosIntroduction to Mesos
Introduction to Mesos
 
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
Cassandra on Mesos Across Multiple Datacenters at Uber (Abhishek Verma) | C* ...
 
Mesos and containers
Mesos and containersMesos and containers
Mesos and containers
 
8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker8a. How To Setup HBase with Docker
8a. How To Setup HBase with Docker
 
Elastic HBase on Mesos - HBaseCon 2015
Elastic HBase on Mesos - HBaseCon 2015Elastic HBase on Mesos - HBaseCon 2015
Elastic HBase on Mesos - HBaseCon 2015
 
Cassandra Introduction & Features
Cassandra Introduction & FeaturesCassandra Introduction & Features
Cassandra Introduction & Features
 
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
Making Distributed Data Persistent Services Elastic (Without Losing All Your ...
 
Cassandra and Rails at LA NoSQL Meetup
Cassandra and Rails at LA NoSQL MeetupCassandra and Rails at LA NoSQL Meetup
Cassandra and Rails at LA NoSQL Meetup
 
Introduction to Apache Mesos
Introduction to Apache MesosIntroduction to Apache Mesos
Introduction to Apache Mesos
 
Friends of Solr - Nutch & HDFS
Friends of Solr - Nutch & HDFSFriends of Solr - Nutch & HDFS
Friends of Solr - Nutch & HDFS
 
HBaseConEast2016: HBase on Docker with Clusterdock
HBaseConEast2016: HBase on Docker with ClusterdockHBaseConEast2016: HBase on Docker with Clusterdock
HBaseConEast2016: HBase on Docker with Clusterdock
 
Scaling Big Data with Hadoop and Mesos
Scaling Big Data with Hadoop and MesosScaling Big Data with Hadoop and Mesos
Scaling Big Data with Hadoop and Mesos
 
Apache cassandra architecture internals
Apache cassandra architecture internalsApache cassandra architecture internals
Apache cassandra architecture internals
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
 
Introduction to Apache Mesos
Introduction to Apache MesosIntroduction to Apache Mesos
Introduction to Apache Mesos
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
 

Viewers also liked

Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
James Bayer
 
Hadoop Streaming Tutorial With Python
Hadoop Streaming Tutorial With PythonHadoop Streaming Tutorial With Python
Hadoop Streaming Tutorial With Python
Joe Stein
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
Joe Stein
 

Viewers also liked (20)

Cf summit2014 roadmap
Cf summit2014 roadmapCf summit2014 roadmap
Cf summit2014 roadmap
 
jstein.cassandra.nyc.2011
jstein.cassandra.nyc.2011jstein.cassandra.nyc.2011
jstein.cassandra.nyc.2011
 
Data Pipeline with Kafka
Data Pipeline with KafkaData Pipeline with Kafka
Data Pipeline with Kafka
 
Storing Time Series Metrics With Cassandra and Composite Columns
Storing Time Series Metrics With Cassandra and Composite ColumnsStoring Time Series Metrics With Cassandra and Composite Columns
Storing Time Series Metrics With Cassandra and Composite Columns
 
Developing Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache KafkaDeveloping Realtime Data Pipelines With Apache Kafka
Developing Realtime Data Pipelines With Apache Kafka
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Introduction Apache Kafka
Introduction Apache KafkaIntroduction Apache Kafka
Introduction Apache Kafka
 
Developing with the Go client for Apache Kafka
Developing with the Go client for Apache KafkaDeveloping with the Go client for Apache Kafka
Developing with the Go client for Apache Kafka
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache Kafka
 
SMACK Stack 1.1
SMACK Stack 1.1SMACK Stack 1.1
SMACK Stack 1.1
 
Hadoop Streaming Tutorial With Python
Hadoop Streaming Tutorial With PythonHadoop Streaming Tutorial With Python
Hadoop Streaming Tutorial With Python
 
Microxchg Analyzing Response Time Distributions for Microservices
Microxchg Analyzing Response Time Distributions for MicroservicesMicroxchg Analyzing Response Time Distributions for Microservices
Microxchg Analyzing Response Time Distributions for Microservices
 
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraReal-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Introduction to Apache Mesos
Introduction to Apache MesosIntroduction to Apache Mesos
Introduction to Apache Mesos
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
 
Real-time streaming and data pipelines with Apache Kafka
Real-time streaming and data pipelines with Apache KafkaReal-time streaming and data pipelines with Apache Kafka
Real-time streaming and data pipelines with Apache Kafka
 
Introducing Kafka Streams, the new stream processing library of Apache Kafka,...
Introducing Kafka Streams, the new stream processing library of Apache Kafka,...Introducing Kafka Streams, the new stream processing library of Apache Kafka,...
Introducing Kafka Streams, the new stream processing library of Apache Kafka,...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 

Similar to Making Distributed Data Persistent Services Elastic (Without Losing All Your Data)

OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating SystemOSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
NETWAYS
 
quickguide-einnovator-5-springxd
quickguide-einnovator-5-springxdquickguide-einnovator-5-springxd
quickguide-einnovator-5-springxd
jorgesimao71
 
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
Akhil Das
 

Similar to Making Distributed Data Persistent Services Elastic (Without Losing All Your Data) (20)

OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating SystemOSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
OSDC 2015: Bernd Mathiske | Why the Datacenter Needs an Operating System
 
Fully fault tolerant real time data pipeline with docker and mesos
Fully fault tolerant real time data pipeline with docker and mesos Fully fault tolerant real time data pipeline with docker and mesos
Fully fault tolerant real time data pipeline with docker and mesos
 
Introduction to mesos
Introduction to mesosIntroduction to mesos
Introduction to mesos
 
Apache mesos - overview
Apache mesos - overviewApache mesos - overview
Apache mesos - overview
 
Apache mesos
Apache mesosApache mesos
Apache mesos
 
Cassandra - A decentralized storage system
Cassandra - A decentralized storage systemCassandra - A decentralized storage system
Cassandra - A decentralized storage system
 
Mesos: Cluster Management System
Mesos: Cluster Management SystemMesos: Cluster Management System
Mesos: Cluster Management System
 
Abhishek Kumar - CloudStack Locking Service
Abhishek Kumar - CloudStack Locking ServiceAbhishek Kumar - CloudStack Locking Service
Abhishek Kumar - CloudStack Locking Service
 
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
 
Kafka connect 101
Kafka connect 101Kafka connect 101
Kafka connect 101
 
quickguide-einnovator-5-springxd
quickguide-einnovator-5-springxdquickguide-einnovator-5-springxd
quickguide-einnovator-5-springxd
 
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OSPutting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
Putting Kafka In Jail – Best Practices To Run Kafka On Kubernetes & DC/OS
 
A Travel Through Mesos
A Travel Through MesosA Travel Through Mesos
A Travel Through Mesos
 
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
Cloud Infrastructures Slide Set 8 - More Cloud Technologies - Mesos, Spark | ...
 
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
Fully Fault tolerant Streaming Workflows at Scale using Apache Mesos & Spark ...
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
 
Horizontal scaling with Galaxy
Horizontal scaling with GalaxyHorizontal scaling with Galaxy
Horizontal scaling with Galaxy
 
Mesos by zigi
Mesos by zigiMesos by zigi
Mesos by zigi
 
DataStax | Building a Spark Streaming App with DSE File System (Rocco Varela)...
DataStax | Building a Spark Streaming App with DSE File System (Rocco Varela)...DataStax | Building a Spark Streaming App with DSE File System (Rocco Varela)...
DataStax | Building a Spark Streaming App with DSE File System (Rocco Varela)...
 
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
Spark on Mesos-A Deep Dive-(Dean Wampler and Tim Chen, Typesafe and Mesosphere)
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Making Distributed Data Persistent Services Elastic (Without Losing All Your Data)

  • 1. Making Distributed Data Persistent Services Elastic (Without Losing All Your Data)
  • 2. CEO of Elodina, Inc. Elodina http://www.elodina.net/ is a startup focusing on the support & maintenance of third party open source software (like Mesos frameworks) and offering SaaS based solutions for those systems. Elodina started as Big Data Open Source Security http://stealth.ly and has been working for the last couple of years on implementing and assisting organizations with their Kafka, Mesos, Hadoop, Cassandra, Accumulo, Storm, Spark, etc, Big Data systems. Twitter: https://twitter.com/allthingshadoop LinkedIn: https://www.linkedin.com/in/charmalloc Joe Stein
  • 3. ◉ Mesos Overview ◉ Roles, Attributes, Constraints, Modules, Hooks ◉ Marathon, Kafka, Cassandra, HDFS, MySQL, YARN and more! Overview
  • 5. Papers ◉ Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center https://www.cs.berkeley.edu/~alig/papers/mesos.pdf ◉ Omega: flexible, scalable schedulers for large compute clusters http://eurosys2013.tudos.org/wp- content/uploads/2013/paper/Schwarzkopf.pdf ◉ Large-scale cluster management at Google with Borg http://research.google.com/pubs/pub43438.html
  • 12. Mesos ● Scalability to 10,000s of nodes ● Fault-tolerant replicated master and slaves using ZooKeeper ● Support for Docker containers ● Native isolation between tasks with Linux Containers ● Multi-resource scheduling (memory, CPU, disk, and ports) ● Java, Python and C++ APIs for developing new parallel applications ● Web UI for viewing cluster state
  • 13.
  • 14. Mesos
  • 15.
  • 16. Sample Frameworks C++ - https://github.com/apache/mesos/tree/master/src/examples Java - https://github.com/apache/mesos/tree/master/src/examples/java Python - https://github.com/apache/mesos/tree/master/src/examples/python Scala - https://github.com/mesosphere/scala-sbt-mesos-framework.g8 Go - https://github.com/mesosphere/mesos-go
  • 18. Roles Total consumable resources per slave, in the form 'name(role):value;name(role):value...'. This value can be set to limit resources per role, or to overstate the number of resources that are available to the slave. --resources="cpus(*):8; mem(*):15360; disk(*):710534; ports(*):[31000-32000]" --resources="cpus(prod):8; cpus(stage):2 mem(*):15360; disk(*):710534; ports(*):[31000-32000]" All * roles will be detected, so you can specify only the resources that are not all roles (*). -- resources="cpus(prod):8; cpus(stage)" Frameworks bind a specific roles or any. A default roll (instead of *) can also be configured. Roles can be used to isolate and segregate frameworks.
  • 19. Attributes The Mesos system has two basic methods to describe the slaves that comprise a cluster. One of these is managed by the Mesos master, the other is simply passed onwards to the frameworks using the cluster. --attributes='disks:sata;raid:jbod;dc:1;rack:3'
  • 20. Constraints Constraints control where apps run to allow optimizing for fault tolerance or locality. Constraints are made up of three parts: a field name, an operator, and an optional parameter. The field can be the slave hostname or any Mesos slave attribute. ◉ UNIQUE ◉ CLUSTER ◉ GROUP_BY ◉ LIKE ◉ UNLIKE
  • 21. Modules & Hooks ◉ Plugable Allocator ◉ Plugable Isolator ◉ Subverting environment variables ◉ Decoration of label task Docs http://mesos.apache.org/documentation/latest/modules/ Sample Code https://github.com/mesos/modules
  • 22. Future release(s) to make things even better! MESOS-2018 Dynamic Reservations MESOS-1554 Persistent resources support for storage-like services MESOS-1279 Add resize task primitive MESOS-1607 Optimistic Offers
  • 24. Marathon https://github.com/mesosphere/marathon Cluster-wide init and control system for services in cgroups or docker based on Apache Mesos ◉ REST API ◉ Supports Constraints ◉ Discovery ◉ Health checks ◉ Deployments
  • 25. Apache Kafka with Apache Mesos
  • 27. Goals we set out with ● smart broker.id assignment. ● preservation of broker placement (through constraints and/or new features). ● ability to-do configuration changes. ● rolling restarts (for things like configuration changes). ● scaling the cluster up and down with automatic, programmatic and manual options. ● smart partition assignment via constraints visa vi roles, resources and attributes.
  • 28. Scheduler ● Provides the operational automation for a Kafka Cluster. ● Manages the changes to the broker's configuration. ● Exposes a REST API for the CLI to use or any other client. ● Runs on Marathon for high availability. Executor ● The executor interacts with the kafka broker as an intermediary to the scheduler Scheduler & Executor
  • 29. CLI & REST API ● scheduler - starts the scheduler. ● add - adds one more more brokers to the cluster. ● update - changes resources, constraints or broker properties one or more brokers. ● remove - take a broker out of the cluster. ● start - starts a broker up. ● stop - this can either a graceful shutdown or will force kill it (./kafka-mesos.sh help stop) ● rebalance - allows you to rebalance a cluster either by selecting the brokers or topics to rebalance. Manual assignment is still possible using the Apache Kafka project tools. Rebalance can also change the replication factor on a topic. ● help - ./kafka-mesos.sh help || ./kafka-mesos.sh help {command}
  • 30. Launch 20 brokers in seconds ./kafka-mesos.sh add 1000..1019 --cpus 0.01 --heap 128 --mem 256 --options num.io.threads=1 ./kafka-mesos.sh start 1000..1019
  • 31. Kafka is available on DCOS https://docs.mesosphere.com/services/kafka/ Mesosphere DCOS
  • 32. Apache Cassandra with Apache Mesos
  • 33. Cassandra on Mesos https://github.com/mesosphere/cassandra-mesos The Mesos scheduler is the component with the most high-level intelligence in the framework. It will need to possess the ability to bootstrap a ring and distribute the correct configuration to all subsequently started nodes. The Scheduler will also be responsible for orchestrating all tasks with regard to restarting nodes and triggering and monitoring periodic administrative tasks required by a node.
  • 34. Cassandra Scheduler ◉ Bootstrapping a ring ◉ Adding nodes to a ring ◉ Restarting a node that has crashed ◉ Providing configuration to nodes o Seed nodes, Snitch Class, JVM OPTS ◉ Scheduling and running administrative utilities o nodetool repair o nodetool cleanup ◉ Registers with a failover timeout ◉ Supports framework authentication ◉ Declines offers to resources it doesn't need ◉ Only use necessary fraction of offers ◉ Deal with lost tasks ◉ Does not rely on in-memory state ◉ Verifies supported Mesos Version ◉ Supports roles ◉ Able to provide set of ports to be used by Nodes ◉ Initial implementation will be for a static set of ports with a potential for longer term dynamic port usage.
  • 35. Cassandra Executor ◉ Monitor health of running node ◉ Use JMX Mbeans for interfacing with Cassandra Server Process ◉ Communicate results of administrative actions via StatusUpdates to scheduler when necessary ◉ Does not rely on file system state outside sandbox ◉ Pure libprocess communication with Scheduler leveraging StatusUpdate ◉ Does not rely on running on a particular slave node ◉ Data directories will be created and managed by Mesos leveraging the features provided in MESOS-1554
  • 36. Apache HDFS with Apache Mesos
  • 37. HDFS on Mesos https://github.com/mesosphere/hdfs ◉ 3 journal nodes ◉ 2 name nodes (active/standby) ◉ data nodes, lots of them! ◉ Fault tolerance more than just what Hadoop gives. ◉ Ease of configuration and distributing nodes. ◉ Elastic DFS ◉ Run multiple frameworks at a time for new solutions
  • 39. MySQL on Mesos (Apache Incubating) ◉ Open sourced by Twitter https://github.com/twitter/mysos ◉ Moving to Apache https://twitter.com/ApacheMysos ◉ Dramatically simplifies the management of a MySQL cluster: o Efficient hardware utilization through multi-tenancy (in performance- isolated containers) o High reliability through preserving the MySQL state during failure and automatic backing up to/restoring from HDFS o An automated self-service option for bringing up new MySQL clusters o High availability through automatic MySQL master failover o An elastic solution that allows users to easily scale up and down a MySQL cluster by changing the number of slave instances