下载Mesos
有几种不同的方法可以下载到mesos:
- 从Apache(推荐)下载最新的稳定版本
wget http://www.apache.org/dist/mesos/0.28.2/mesos-0.28.2.tar.gz
tar -zxf mesos-0.28.2.tar.gz
- 从mesos仓库进行克隆(只针对高级用户)
git clone https://git-wip-us.apache.org/repos/asdf/mesos.gif
注意: 在运行上面命令的时候,如果遇到问题,你也许需要运行在接下来会介绍的系统以来,安装wget、tar、git命令。
系统依赖
mesos运行在64位的Linux以及64位的Mac OS X上面。从源代码进行编译的话,需要GCC 4.8.1或者Clang 3.5+。
如果在Linux上面有全部进程隔离方面的要求,近期的kernel >= 3.10是必须的。
mesos 代理也可以运行在windows里面。如果要从编译代理,VS 2015是需要的。
确保系统的hostname可以通过DNS或者/etc/hosts进行解析,以便支持Docker的主机所有网络能力,在mesos的一些测试的时候会用到。如果有疑问,验证/etc/hosts包括了你的主机名。
Ubuntu 14.04
跟随如下的步骤,如果你的系统还是Ubuntu 14.04。如果你使用其他的OS,需要安装相对应的包。
# update the packages
sudo apt-get update
# 安装一些工具软件
sudo apt-get install -y tar wget git
# 安装最新的OpenJDK
apt-get install -y openjdk-7-jdk
# 安装autotools(如果你是要从git仓库进行编译的话,才需要此步骤)
sudo apt-get install -y autoconf libtool
# 安装其他mesos依赖
sudo apt-get install -y build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev
Mac OS X Yosemite & EI Caption
跟随如下的步骤,如果你的操作系统是MAC OSX Yosmite 和 EI Caption。如果你使用其他的OS,需要安装对应的包。
# 安装命令行工具
xcode-select --install
# Install Homebrew
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/HomeBrew/install/master/install)"
# 安装java
brew install Caskroom/cask/java
# 安装库
brew install wget git autoconf automake libtool subversion maven
注意: 当升级Yosemite 到EI Caption的时候,确保升级完成后 再次执行 xcode-select –install 这个命令。
CentOS 6.6
如果你的系统是CentOS 6.6, 跟随如下的步骤进行安装
# 安装最近的内核,以便提供全面的进程隔离
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install -y kernel-lt
# 确保刚刚安装的kernel已经设置成了第一启动,并且重启系统
sudo sed -i 's/default=1/default=0/g' /boot/grub/grub.conf
sudo reboot
# 安装一些小工具。也许会要求升级nss
# 对于java构建是需要的
sudo yum install -y tar wget git which nss
# 'Mesos > 0.21.0' 要求 C++ 编译器带有C++11支持功能
# (例如, GCC > 4.8) 可以通过'devtoolset-2'进行安装。
# 获取科技LinuxCERN 开发同居套件仓库文件
sudo wget -O /etc/yum.repod.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
# Import the CERN GPG key.
sudo rpm --import http://linuxsoft.cern.ch/cern/centos/7/os/x86_64/RPM-GPG-KEY-cern
# 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
# '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.8
enabled=1
baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/
gpgcheck=1
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco
EOF'
# Install essential development tools.
sudo yum groupinstall -y "Development Tools"
# Install 'devtoolset-2-toolchain' which includes GCC 4.8.2 and related packages.
sudo yum install -y devtoolset-2-toolchain
# Install other Mesos dependencies.
sudo yum install -y apache-maven python-devel java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel
# Enter a shell with 'devtoolset-2' enabled.
scl enable devtoolset-2 bash
g++ --version # Make sure you've got GCC > 4.8!
# Process isolation is using cgroups that are managed by 'cgconfig'.
# The 'cgconfig' service is not started by default on CentOS 6.6.
# Also the default configuration does not attach the 'perf_event' subsystem.
# To do this, add 'perf_event = /cgroup/perf_event;' to the entries in '/etc/cgconfig.conf'.
sudo yum install -y libcgroup
sudo service cgconfig start
CentOS 7.1
$ 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 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
Windows
按照如下的知道进行Windows 10以及Windows Server 2012 以上系统上的安装。
- 安装最新版本的 Visual Studio Community 2015。确保选取了Common Tools Visual C++以及 Windows 10 SDK。 打开Visual Studio Community 完成安装和配置。
- 安装CMake 3.5.2 或者更新。不要在安装Visual Studio Community之前安装CMake。
- 安装Gnu Patch 2.5.9-7或者更新。
- 如果从Git编译安装,确保有Windows风格的行分隔符。例如: git config core.autocrlf true。
- 确保在你的编译目录里面没有空格。例如, C:/Program Files (x86)/mesos 是一个非法的编译路径。
编译Mesos (Posix)
# 更改当前工作路径
cd mesos
# Bootstrap(仅仅是在你编译git仓库代码的时候需要这个)
./bootstrap
# 编译和构建
mkdir build
cd build
../configure
make
为了加速编译和减少大量的日志输出,可以添加两个参数 -j (cpu 核心数) V=0 到make的后面。
# 运行测试套件
make test
# 安装(可选)
make install
编译Mesos(Windows)
# 打开一个VS2015 x64内置命令提示符。
# 这个命令提示符可以在打开VS2015和在下面寻找“Tools”菜单,然后是 “Visual Studio Command Prompt”
# 切换当前路径
cd mesos
# 如果你是在Windows里面开发,我们建议运行bootstrap。这个需要管理员权限
.\bootstrap.bat
# 输出方案和构建
mkdir build
cd build
cmake .. -G "Visual Studio 14 2015 Win64" -DENABLE_LIBEVENT=1
# 产生了VS方案之后,你可以使用IDE打开项目并且跳过下一步。这个时候,建议设置`PreferredToolArchitecture`环境变量为`x64`。
# 注意: `PreferredToolArchitecture`可以通过控制面板设置成系统范围有效的。
msbuild Mesos.sln /p:PreferredToolArchitecture=x64
# mesos-agent.ext可以在<repository>\build\src文件夹找到
cd src
# windows agent使用了新的隔离,必须使用 --isolation标志位。下面要开始啦,切换到agent的路径,master参数使用一个ip地址或者zk信息。
mesos-agent.ext --master=<master> --work_dir=<work folder> --isolation=windows/cpu,filesystem/windows --launcher_dir=<repository>\build\src
案例
mesos已经捆绑了一些用C++ 、JAVA以及Python写的框架案例。这些框架程序要使用的话,必须使用make check之后才能有,之前构建Mesos的时候有的说。
# 切换当前构建目录
cd build
# 打开mesos master(确保工作目录存在并且有合适的权限)
./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
# 打开mesos agent(确保路径存在,确保有合适的权限)
./bin/mesos-agent.sh --master=127.0.0.1:5050 --work_dir=/var/lib/mesos
# 访问mesos web页面
http://127.0.0.1:5050
# 运行C++ 框架(运行正确命令后会存在)
./src/test-framework --master=127.0.0.1:5050
# 运行JAVA框架(运行正确命令后会存在)
./src/examples/java/test-framework 127.0.0.1:5050
# 运行Python框架(运行正确命令后会存在)
./src/examples/python/test-framework 127.0.0.1:5050
注意: 这些案例是在你运行本地mesos服务的情况下执行的。如果你按照上面的方式运行了,那么你是不会成功登陆web页面的,如果你是在AWS等IAAS平台执行命令后。为此,你需要输入真实的系统IP地址。