Marathon on OS X初体验

本文描述了在OS X上安装使用Marathon的过程。

Marathon简介

Marathon是Mesosphere公司为Mesos生态圈打造的一个轻量级、扩展性很强的调度long-running service的调度框架。支持RESTful api来创建和管理app,自动为app做容错迁移,凡是能用shell起的任务,理论上都可以通过Marathon在mesos上简单地启动和管理起来。

下图为Mesos, Marathon, Chronos混布示意图:

安装和启动过程

Marathon依赖zk和mesos,如果没用mesos集群的话可以跑local模式。

首先download zookeeper包,修改conf/zoo.cfg,然后

bin/zkServer.sh start

启动一个在local:2181的单个zk服务。zk对Marathon来说,用于做同一个app的多个副本的选举,以做到app fail后marathon可以在新的mesos slave上重新启动。另一方面,zk也用于mesos集群的HA模式。即zk同时负责了对mesos和marathon的HA,但节点路径是分开的,可以见下面启动参数。

然后是安装mesos。可以直接使用brew安装,非常非常方便,

brew install mesos

启动和安装可以参考这篇文章

我也是这样在本地启动了一个master和一个slave

/usr/local/sbin/mesos-master --registry=in_memory --ip=127.0.0.1
/usr/local/sbin/mesos-slave --master=127.0.0.1:5050

然后可以在localhost:5050 看到mesos master的UI。

下载Marathon包,我使用的是0.8.0版本,支持0.20.0+版本的mesos。下载完解压就可以使用

./bin/start --master 127.0.0.1:5050 --zk zk://localhost:2181/marathon

这里连接的就是local启动的mesos master和zk。在local:8080查看marathon的UI。

hello world

我直接YY了一个hello world,在marathon提供的UI里create了一个app,如图

填完后,mesos UI上开始定时地蹦出大量的task,

跟到日志里看,stdout里打印如下日志

Registered executor on 192.168.59.3
Starting task test.c633dc4e-f7eb-11e4-b8f3-66ea63a3c279
sh -c ‘echo "hello world"‘
Forked command at 44530
hello world
Command exited with status 0 (pid: 44530)

Marathon上的app以json格式描述,具体见官方文档

Run with Docker

Github上描述了与Docker的交互,首先把Docker启动起来,可以参考我之前这篇文章 然后 cd到marathon目录,有个Dockerfile文件,执行

docker build -t marathon-tip .
# 接下来是漫长的package下载和install过程。。。

build成功后,在docker中启动marathon,

docker run marathon-tip --master local --zk zk://localhost:2181/marathon

总结

Marathon相比Mesos上另一个service调度框架Apache Aurora更加易上手,本身是Scala开发的,整体和mesos一样让人感觉轻量,主要提供的是google-scale能力和方便的app管理服务。

全文完:)

时间: 2024-08-10 09:46:06

Marathon on OS X初体验的相关文章

firefox os 2.0版模拟器上QQ初体验

对于firefox os 爱好者而言,firefox os 手机迟迟没在中国上市会感到些许遗憾,但我们要相信firefox os 登陆中国是迟早的事,腾讯QQ已经登陆firefox os 应用市场,今天我们就从模拟器上感受一番腾讯QQ,想体验的爱好者们可以参考安装模拟器抢先体验一番! 下载安装QQ 安装. 安装完成 登陆界面; 聊天界面 喜欢的盆友快去试试吧!!!   编辑(5狐网)firefox os 2.0版模拟器上QQ初体验,布布扣,bubuko.com

Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单总结一下成功安装方法: 1,Vmware Player 12.1.1-3770994(Virtual Box 老版本Win10上启动不了,新版本5.1不再支持Mac OS) 2,执行命令关闭Hyper-v服务重启:bcdedit /set hypervisorlaunchtype off (不然无法

Mac OS 下 Visual studio code初体验

Mac OS 下 Visual studio code初体验 随着微软开源策略的一步步推进,终于等到了跨平台的Visual Studio Code.作为一名使用MacBook 的.NET程序猿,不得不说是一种福音.(尝试过使用Xamarin/Eclipse/IDEA在Mac下编辑.net源代码,用起来都不是特别的爽.) 一下就在mac系统上搭建开发环境的过程简单的整理一下. 依赖的环境 mono 4.0.1 dnvm/dnx https://github.com/aspnet/home nodj

【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验

----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafka初体验 2.1 环境准备 2.2 Kafka小试牛刀 2.2.1单个broker初体验 2.2.2 多个broker初体验 2.3 Kafka分布式集群构建 2.3.1 Kafka分布式集群构建 2.3.2 Kafka主题创建 2.3.3 生产者生产数据 2.3.4消费者消费数据 2.3.5消息的

1Python全栈之路系列之Django初体验

Python全栈之路系列之Django初体验 Django不得不说在Python中是一个非常强大的全栈框架,而且入门也比较简单,只要你学完了基本的Django知识,接着再做一两个项目,不大不小就成,然后你再去学其它的框架你会发现,在那些小而美的框架中,你学起来将非常的快,因为你在学习Django的时候就已经学习并且体验过了Web开发流程,所以会有这么一个现象出现,有些新手朋友在学习Flask.Tornado等小而美的框架时,很多概念不是很理解,比如ORM.路由等,但你学Django就不会出现这种

Xamarin.iOS开发初体验

Xamarin是一个跨平台开发框架,这一框架的特点是支持用C#开发IOS.Android.Windows Phone和Mac应用,这套框架底层是用Mono实现的. Mono是一款基于.NET框架的开源工程,包含C#语言编译器.CLR运行时和一组类库,能运行于Windows.Linux.Unix.Mac OS和Solaris.对于.NET程序员来说,Xamarin是走向安卓.iOS.Mac跨平台开发的神器,不仅能用熟悉的C#来开发,还能使用Visual Studio作为IDE.本文内容是Xamar

KVM之初体验——手动及自动化安装KVM脚本

一,什么是KVM KVM包括很多部件:首先,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户 (guset) 模式.用户模式有自己的ring状态集合,但是特权ring0的指令会陷入到管理器(hypervisor)的代码.由于这是一个新的处理器执行模型,代 码不需要任何的改动.   除了处理器状态转换,这个内核模块同样处理很小一部分低层次的模拟,比如MMU注册(用于管理VM)和一部分PCI模拟的硬件. 在可预见的未来,Qemu团队专注于硬件模拟和可移植性,同时KVM团队专

Android Studio 初体验

Google在I/O2013大会上公布了Android新的开发工具Android Studio,趁周末时间做了一下尝试.有须要的能够 在http://developer.android.com/sdk/installing/studio.html下载,当前版本号是V0.1.官方解释:Android Studio is a new Android development environment based on IntelliJ IDEA. Similar to Eclipse with the

初探go-golang语言初体验

2017/2/24 一.初体验 1.环境 wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz tar -C /usr/local -xzf go1.8.linux-amd64.tar.gz cat <<'_EOF' >>/etc/profile #golang export PATH=$PATH:/usr/local/go/bin export GOPATH=/opt/go _EOF source