最近有一个实时的采集系统需求,目前的实现方式是用分布式定时任务来处理这一采集请求,希望有更多资源能够为任务分担压力,支持动态添加或者移除任务资源 从而达到提高采集效率,所以准备采用Mesos来做资源调度的工作。

因为自己硬件设备不够好的原因导致安装Mesos的时候出现了一个未知的问题 记录一下,以下是参考官方Getting Started的示例。

获取源码

wget http://www.apache.org/dist/mesos/1.2.0/mesos-1.2.0.tar.gz
tar -zxf mesos-1.2.0.tar.gz

安装所需依赖

由于本机是Ubuntu 14.04 如果是其他的系统请参考 http://mesos.apache.org/gettingstarted/

apt-get update
apt-get install -y tar wget git
apt-get install -y openjdk-7-jdk
apt-get install -y autoconf libtool
apt-get -y install build-essential python-dev python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev

编译源码

cd mesos-1.2.0
./bootstrap
mkdir build
cd build
../configure
make -j3

安装

make check
make install

测试例子

从官方示例复制 可以运行
指定IP的时候 如果需要外网访问可以设置具体的IP, 设置为127.0.0.1 只能用127.0.0.1的IP访问。

# 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

需要注意的是 安装之前要保证差不多2-4个GB的内存,不然在编译的时候总是报一些莫名奇妙的错误。还要保证安装之前要把依赖库安装好。