mesos下载源码
官网上下载源码
http://mesos.apache.org/downloads/
安装依赖包
根据官网教程(http://mesos.apache.org/gettingstarted/)先安装依赖包
# Update the packages.
$ sudo apt-get update
# Install a few utility tools.
$ sudo apt-get install -y tar wget git
# Install the latest OpenJDK.
$ sudo apt-get install -y openjdk-7-jdk
# Install autotools (Only necessary if building from git repository).
$ sudo apt-get install -y autoconf libtool
# Install other Mesos dependencies.
$ sudo apt-get -y install build-essential python-dev libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev
配置并编译
# Change working directory.
$ cd mesos
# Bootstrap (Only required if building from git repository).
$ ./bootstrap
# Configure and build.
$ mkdir build
$ cd build
$ ../configure --prefix=/home/hl/mesos_install
#prefix参数就是安装的路径,最好自己新建一个文件夹,不要使用默认,默认的目录为/usr/local,如果默认安装的话会出现很多权限问题
$ make
测试编译结果
编译好之后打开build/bin,使用下述命令启动mesos-master,以及附属的一个slave来检查是否编译成功
$ ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/home/hl/mesos_install/log/master
# Start mesos slave.
$ ./bin/mesos-slave.sh --master=127.0.0.1:5050
在本机上访问如下地址$ http://127.0.0.1:5050,如果用浏览器访问上述网页成功,而且面中现实激活的节点为1个则说明编译成功了
安装
安装的过程就是把mesos集群启动过程中需要的执行文件,库文件等集中放置到系统路劲下,一般系统路径是/usr/sbin、/usr/bin等。但是这个路劲是可以改变的,在之间./configuire操作的时候--prefix操作就是设置安装的目录。
虽然教程中安装只有一句命令“make install”,但是make install有时候会出现问题,比如:
Command Python setup.py egg_info failed with error code 1 in /tmp/pip_build_ndn/protobuf
出现这个问题的原因是安装过程中会下载一些软件,这些数据被处理了,解决的方法是使用国内的源先把需要软件安装了,针对上述问题,使用清华的源: https://wiki.tuna.tsinghua.edu.cn/MirrorUsage/pypi修改源的步骤在上诉链接中给出了,我使用第一中方法,“临时使用源”。根据错误提示,相关包为google-apputils和protobuf,那么我使用pip命令安装这两个软件如下:
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple google-apputils
#没有安装pip请安装sudo apt-get install python-pip
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple protobuf
#上述步骤进行之后就可以不出错地安装了
make install
测试
mesos 安装好后,提供了c++ /java /python的测试例子,如果在web界面中看到有任务finshed,说明编译成功。
# 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