marathon小知识点分享之如何远程调试marathon

简介:

目的,在centos服务器上启动marathon服务后,可以在window上使用intellij idea进行远程调试;

主要环境:

1、本人是参考https://mesosphere.github.io/marathon/docs/提供的方式,部署的marathon服务;

2、https://github.com/mesosphere/marathondown下的marathon源码

  1. 如果不想修改源码的话,将marathon的源码down下来后,直接导入到intellijidea里,就可以

  2. 如果想修改源码后,再进行远程调试的话,那么需要对marathon源码进行重新编译,打包成jar包后,替换服务器上的/marathon根目录/target/scala-2.11下的源码包;这样的话,保证本地调试的源码与服务器上运行的源码是一致。

 

  • marathon的远程调试与spark的远程调试有什么区别?

    个人感觉,主要一方面的区别:

    在去年年底研究过spark的远程调试,需要在spark-class脚本里添加jvm参数,如:

声明JAVA_OPTS

wKioL1mVlTryjuqpAAH93VV4wwY154.png-wh_50

Marathon这一点做的比较好,不需要添加,

无论你是从git上直接down的源码,还是通过https://mesosphere.github.io/marathon/下载部署包

在启动脚本bin/start里都提供了调试参数,如下图所示:

wKioL1mVk9iwHjxtAABou7WmmIM708.png-wh_50

不过,如果要实现远程调试的话,需要将上面参数suspend=n的值,由n改成y, 不然的话,远程调试不起作用。

具体步骤:

1、修改启动脚本start

wKioL1mVlGWRQ-jAAADHsrgHmEQ698.png-wh_50

2、更新启动marathon服务的命令,改成调试模式

启动脚本start

wKioL1mVklyg7t9gAAChADXVOLQ286.png-wh_50

因此,将marathon的启动服务的命令,改成下面的形式

/usr/local/marathon/bin/start --jvm-debug 9999 --master zk://master001:2181,master002:2181,master003:2181/mesos--zk zk://master001:2181,master002:2181,master003:2181/marathon--framework_name marathon --mesos_user root --mesos_role marathon_role--mesos_authentication_principal marathon_user

 

3、intellij idea 中,将启动marathon的方式,改成远程调试模式

wKiom1mVkl-zo4A-AAIiBX5GTV8808.png-wh_50

 

4、在服务器上,启动marathon服务,

wKioL1mVkmCTgLgAAAJ3zGoN_tU999.png-wh_50

5、window上,打断点,并启动debug

wKiom1mVkmaxWvV3AACdJq-Kn6M807.png-wh_50

 wKiom1mVkmmztuC3AAOdu2oaId0539.png-wh_50

6、开始debug远程调试

wKioL1mVkmmi1fWcAAHov9bTa8I157.png-wh_50


查看服务器上,是否打印出了日志

 wKioL1mVkmyzbf05AAJv0iEvRnk504.png-wh_50


 OK!

 












本文转自故新51CTO博客,原文链接:http://blog.51cto.com/xingej/1957177 ,如需转载请自行联系原作者

相关文章
|
7月前
|
存储 运维 Kubernetes
服务搭建篇(十二) Kubernetes集群的安装及部署
在所有k8s node机器执行上图第三个红框里的命令 将node节点加入进master节点的集群里,复制上图第三个红框里的命令执行(执行自己的命令)
215 0
|
NoSQL 调度 数据中心
|
13天前
|
运维 Java 云计算
深入浅出:使用Docker容器化改进Java应用部署
在当前快速演变的软件开发领域,Docker作为一种开源的容器化技术,已经成为优化应用部署、实现快速交付和高效率运维的关键工具。本文将探讨如何利用Docker容器化技术来改进Java应用的部署流程。我们不仅会介绍Docker的基础知识,还会通过一个实际的Java应用示例,详细展示从创建Dockerfile到构建镜像,再到运行容器的整个过程。此外,文章还将探讨容器化带来的好处,如环境一致性、便捷的版本控制和简化的部署流程等,力求为读者提供一个清晰、易懂的指南,帮助他们在自己的项目中实现Docker容器化,从而提升开发和部署效率。
177 1
|
10月前
|
Kubernetes 数据可视化 Cloud Native
一文搞懂Kubernetes资源管理工具-KUI
Hello folks,我是 Luga,今天我们来分享一下关于 Kubernetes 资源管理的工具-KUI,全称为“K ubernetes U ser Interface”。作为一款 Kubernetes 工具的集合,KUI 旨在为管理 Kubernetes 资源提供一种更直观和可视化的方式。
140 0
|
5月前
|
Kubernetes Linux Go
基于Goland和dlv远程调试Kubernetes组件
基于Goland和dlv远程调试Kubernetes组件
205 0
|
7月前
|
运维 Kubernetes Cloud Native
Kubernetes(K8s)常用命令大全:熟练编排更完美
Kubernetes(K8s)常用命令大全:熟练编排更完美
640 0
|
11月前
|
Kubernetes 安全 网络协议
【探索 Kubernetes|集群搭建篇 系列 5】简化 Kubernetes 的部署,深入解析其工作流程
【探索 Kubernetes|集群搭建篇 系列 5】简化 Kubernetes 的部署,深入解析其工作流程
180 0
|
存储 Kubernetes Docker
Docker 与 K8S学习笔记(十九)—— Pod的配置管理
我们在部署应用时常常会考虑将应用程序与配置文件相分离,这样可以使应用程序更好的复用,并且通过不同配置也能实现更灵活的功能。将应用制作成镜像后,我们可以在启动容器时通过环境变量或挂载文件的方式注入,但是在面临大规模容器集群的场景下就显得力不从心了,因此我们可以使用ConfigMap进行统一配置。 一、
312 0
|
Kubernetes Linux 网络安全
『Kubernetes』Linux安装K8S集群过程笔记
📣读完这篇文章里你能收获到 - K8S安装全过程 - 博主自己实操笔记带你跳过所有坑
597 0
『Kubernetes』Linux安装K8S集群过程笔记
|
存储 Kubernetes Java
Docker 与 K8S学习笔记(十七)—— 在K8S集群中部署应用
我们今天来通过在在K8S集群中部署web应用来体验一下K8S的使用,我们需要提前准备一个基于springboot的web应用镜像,这个应用也很简单,就一个hello接口: @RestController @RequestMapping("/api") public class ApiControll
179 0

热门文章

最新文章