在没有Docker的Mesos上运行Java应用程序

时间:2016-04-08 23:17:49

标签: java jvm mesos

我只是搞清楚Mesos并在流浪者节点上测试它。 在检查mesos的过程中,我的工作遇到了这里发布的Docker问题中的JVM内存泄漏 - > https://github.com/docker/docker/issues/15020

我想知道是否有一些提示或示例我们可以测试Mesos上的容器化,以查看内存问题是否特定于Docker Containerizers。到目前为止,大多数示例都是针对马拉松运行的docker,但在非docker Mesos上并不多。

  1. 我是否需要编写自己的Mesos JVM Containerizer Isolator?
  2. 容器是否仅解析作业详细信息并执行脚本?
  3. 我可以将Mesos容器传递给.war和job包并让它运行我的Java App吗?
  4. 大型github项目上的任何简单示例或特定代码都说明了这一点?
  5. 我的工作是决定是否应该在没有容器化的情况下部署我们的Java应用程序,或者更改容器化解决方案可能有助于解决问题。

    文档的任何提示或链接我可以查看如何在Mesos Containerizers上设置Tomcat JVM应用程序?我还在学习mesos是如何工作的,所以任何事都有帮助!

1 个答案:

答案 0 :(得分:3)

所以让我退一步说:你不在Mesos上运行Java应用程序,你可以在其中一个框架上运行它,例如Marathon(用于长期运行的任务,如网络服务器)或Chronos(对于预定的批处理作业)。将Mesos视为分布式操作系统的Linux内核,这可能有所帮助。

回到你的问题,除非你打算write your own framework(例如tobilg/mesos-js-framework),否则以下假设您使用Marathon来启动Tomcat(因为它是一个长期运行的任务)。 / p>

马拉松,与大多数框架一样,并没有完成繁重的it leverages Mesos核心功能,例如Fetcherexecute an app所需的资源拉入沙箱中Mesos代理。通过private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { //if you select Games option in combobox, fill text box with text from read file "game.txt". if (comboBox1.Text == "Games") { richTextBox2.Text = File.ReadAllText(@"game.txt"); } else if (comboBox1.Text == "Operate") { richTextBox2.Text = File.ReadAllText(@"operate.txt"); } else if (comboBox1.Text == "Information") { richTextBox2.Text = File.ReadAllText(@"info.txt"); } } catch (Exception ex) { //display error if files not found. MessageBox.Show(" " + ex.Message); } } ,您可以指定Marathon(通过Mesos Fetcher)下载的URL列表,并根据文件扩展名,在启动通过uris内容指定的应用程序之前进行提取。