I'm just figuring out Mesos and testing it on a vagrant node. While in the process of checking out mesos, my work ran into the JVM memory leak in Docker issue posted here -> https://github.com/docker/docker/issues/15020
I would like to know if there are some tips or examples where we can test the containerization on Mesos to see if the memory problems are specific to Docker Containerizers. So far most of the examples are for marathon running docker, but not much else on non-docker Mesos.
My work is deciding if we should deploy our Java apps without containerization or if changing a containerization solution may help resolve the issue.
Any tips or links to documentation I can check to look at how to setup a Tomcat JVM app on Mesos Containerizers? I am still learning how mesos works, so anything helps!
So let me step back a bit: you don't run a Java app on Mesos, you run it on one of its frameworks, such as Marathon (for long-running tasks such as a webserver) or Chronos (for scheduled batch jobs). Think of Mesos as the Linux kernel of a distributed operating system, that might help.
Coming back to your question, and unless you plan to write your own framework (for example tobilg/mesos-js-framework), the following assumes you use Marathon to launch Tomcat (since it is a long-running task).
Marathon, as most frameworks, doesn't do the heavy lifting, it leverages Mesos core features such as the Fetcher to pull resources necessary to execute an app into the sandbox on the Mesos Agent. Via uris
you can specify a list of URLs that Marathon (via the Mesos Fetcher) downloads and, depending on the file extension, also extracts before it launches the app specified via the content of cmd
.