Centos7上Mesos和Marathon的安装和配置攻略
简介
Apache Mesos是一个开源分布式系统内核(也称为集群操作系统),用于在整个数据中心管理计算机集群。Marathon是一个Mesos框架,用于在Mesos集群中运行长时间运行的服务。
该攻略介绍如何在Centos7上安装和配置Mesos和Marathon。
步骤
- 安装依赖项
sudo yum install -y epel-release
sudo yum update -y
sudo yum groupinstall -y "Development Tools"
sudo yum install -y libcurl-devel zlib-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel sqlite-devel
- 安装Mesos
sudo yum install mesos -y
- 配置ZooKeeper
ZooKeeper是Mesos的依赖项,需要先配置好ZooKeeper。
sudo yum install zookeeper -y
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
- 配置Mesos
sudo mkdir -p /etc/mesos-master/
sudo echo zk://localhost:2181/mesos > /etc/mesos/zk
sudo echo 1 > /etc/zookeeper/conf/myid
sudo echo MESOS_QUORUM=1 > /etc/mesos-master/quorum
sudo systemctl enable mesos-master
sudo systemctl start mesos-master
- 安装Marathon
sudo yum install marathon -y
- 配置Marathon
sudo mkdir -p /etc/marathon/conf
sudo cp /usr/share/doc/marathon-1.5.12/conf/* /etc/marathon/conf/
sudo nano /etc/marathon/conf/master
在文件中添加以下内容:
zk://localhost:2181/mesos
- 运行Marathon
sudo systemctl enable marathon
sudo systemctl start marathon
示例
示例1:在Marathon上运行Docker容器
- 安装Docker
sudo yum install docker -y
sudo systemctl enable docker
sudo systemctl start docker
- 创建Docker文件
创建一个名为“hello-world.json”的文件,包含以下内容:
{
"id": "hello-world",
"cmd": "echo 'Hello world!'",
"cpus": 0.5,
"mem": 32.0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "hello-world",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 1234,
"hostPort": 0,
"servicePort": 0,
"protocol": "tcp"
}
]
}
}
}
- 提交任务
curl -X POST http://localhost:8080/v2/apps -d @hello-world.json \
-H "Content-type: application/json"
- 检查状态
curl http://localhost:8080/v2/apps/hello-world
示例2:在Marathon上运行Java应用程序
- 编写Java程序
创建一个Java程序文件,并保存为“hello-world.jar”。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
- 创建启动脚本
创建一个名为“start.sh”的脚本文件,包含以下内容:
#!/bin/bash
java -cp /path/to/hello-world.jar HelloWorld
- 创建任务文件
创建一个名为“hello-world.json”的任务文件,包含以下内容:
{
"id": "hello-world",
"cmd": "sh /path/to/start.sh",
"cpus": 0.5,
"mem": 32.0,
"instances": 1
}
- 提交任务
curl -X POST http://localhost:8080/v2/apps -d @hello-world.json \
-H "Content-type: application/json"
- 检查状态
curl http://localhost:8080/v2/apps/hello-world
结论
现在,您已经了解如何在Centos7上安装和配置Mesos和Marathon,并运行了两个示例。您可以根据需要修改示例,以满足您的特定需求。