#简介
Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核
###安装文件
http://archive.apache.org/dist/mesos/1.7.0/mesos-1.7.0.tar.gz
###官网
https://mesos.apache.org/
###文档
http://mesos.apache.org/documentation/latest/
###architecture
http://mesos.apache.org/documentation/latest/architecture/
###在线安装
https://mesos.apache.org/documentation/latest/building/
###特性
1、线性可扩展 --可扩展到10000个节点
2、高可用性 --使用zookeeper实现master和agent容错、可实现无中断升级
3、支持容器 --原生支持docker容器 和APPC容器
4、可插拔的隔离 --硬件模块实现自定义资源隔离支持
5、二级调度 --支持在相同集群中使用可插拔调度策略来运行云原生和遗留的应用程序
6、API --提供HTTP API操作集群、监控集群等方面开发新的分布式应用程序
7、WEB界面 --web界面查看集群状态
8、跨平台 --window、osx、linux
###组成
1、master
2、framework
1)scheduler(注册到master分配资源)
2)executor(启动agent运行framework任务)
###编译安装
$ wget http://www.apache.org/dist/mesos/1.7.0/mesos-1.7.0.tar.gz
$ tar -zxf mesos-1.7.0.tar.gz
# Install a few utility tools
$ sudo yum install -y tar wget git
# Fetch the Apache Maven repo file.
$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
# Install the EPEL repo so that we can pull in 'libserf-1' as part of our
# subversion install below.
$ sudo yum install -y epel-release
# 'Mesos > 0.21.0' requires 'subversion > 1.8' devel package,
# which is not available in the default repositories.
# Create a WANdisco SVN repo file to install the correct version:
$ sudo bash -c 'cat > /etc/yum.repos.d/wandisco-svn.repo <<EOF
[WANdiscoSVN]
name=WANdisco SVN Repo 1.9
enabled=1
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/\$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
EOF'
# Parts of Mesos require systemd in order to operate. However, Mesos
# only supports versions of systemd that contain the 'Delegate' flag.
# This flag was first introduced in 'systemd version 218', which is
# lower than the default version installed by centos. Luckily, centos
# 7.1 has a patched 'systemd < 218' that contains the 'Delegate' flag.
# Explicity update systemd to this patched version.
$ sudo yum update systemd
# Install essential development tools.
$ sudo yum groupinstall -y "Development Tools"
# Install other Mesos dependencies.
$ sudo yum install -y apache-maven python-devel python-six python-virtualenv java-1.8.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
###build
# Change working directory.
$ cd mesos
# Bootstrap (Only required if building from git repository).
$ ./bootstrap
# Configure and build.
$ mkdir build
$ cd build
$ ../configure
$ make
###examples
# Change into build directory.
$ cd build
# Start Mesos master (ensure work directory exists and has proper permissions).
$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
# Start Mesos agent (ensure work directory exists and has proper permissions).
$ ./bin/mesos-agent.sh --master=127.0.0.1:5050 --work_dir=/var/lib/mesos
# Visit the Mesos web page.
$ http://127.0.0.1:5050
# Run C++ framework (exits after successfully running some tasks).
$ ./src/test-framework --master=127.0.0.1:5050
# Run Java framework (exits after successfully running some tasks).
$ ./src/examples/java/test-framework 127.0.0.1:5050
# Run Python framework (exits after successfully running some tasks).
$ ./src/examples/python/test-framework 127.0.0.1:5050