安装Mesos v1.5.0
我最近有机会在工作上使用Mesos,所以我想记录下安装的方法。
安装的版本是最新的v1.5.0(截止到2018年5月9日)。
我打算最终将Spark、Cassandra和Mesos组合在一起使用。
我按照官方提供的步骤进行了尝试。
-
- CentOS Linux release 7.3.1611 (Core)
メモリ: 4GB
CPU: 1Core
Vagrantで構築。
注意事項として、メモリが少ないとMesosのビルドでこけます。
Mesos 1.5.0 (2018.2)
公式: http://mesos.apache.org/documentation/latest/building/
为了进行Mesos构建,需要安装软件包。
sudo yum -y install git
sudo curl -Lo /etc/yum.repos.d/epel-apache-maven.repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo
sudo yum install -y epel-release
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'
sudo yum groupinstall -y "Development Tools"
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
sudo yum install -y python-pip
sudo pip install --upgrade pytz
下载和构建Mesos 1.5.0
curl -o ~/mesos-1.5.0.tar.gz http://archive.apache.org/dist/mesos/1.5.0/mesos-1.5.0.tar.gz
tar xvfz ~/mesos-1.5.0.tar.gz -C ~/
cd ~/mesos-1.5.0
mkdir build
cd build
../configure
make
sudo make install
制作需要非常长的时间。在本地环境下至少需要1个小时以上。
此外,如果内存不足,将会在中途失败。
确认在sudo make install后,确保在/usr/local/sbin下出现了mesos的相关文件。
$ ll /usr/local/sbin/ | grep mesos
-rwxr-xr-x. 1 root root 2456352 5月 9 17:53 mesos-agent
-rwxr-xr-x. 1 root root 406 5月 9 17:53 mesos-daemon.sh
-rwxr-xr-x. 1 root root 2385928 5月 9 17:53 mesos-master
lrwxrwxrwx. 1 root root 11 5月 9 17:53 mesos-slave -> mesos-agent
-rwxr-xr-x. 1 root root 1349 5月 9 17:53 mesos-start-agents.sh
-rwxr-xr-x. 1 root root 888 5月 9 17:53 mesos-start-cluster.sh
-rwxr-xr-x. 1 root root 1366 5月 9 17:53 mesos-start-masters.sh
-rwxr-xr-x. 1 root root 1349 5月 9 17:53 mesos-start-slaves.sh
-rwxr-xr-x. 1 root root 1185 5月 9 17:53 mesos-stop-agents.sh
-rwxr-xr-x. 1 root root 635 5月 9 17:53 mesos-stop-cluster.sh
-rwxr-xr-x. 1 root root 1200 5月 9 17:53 mesos-stop-masters.sh
-rwxr-xr-x. 1 root root 1185 5月 9 17:53 mesos-stop-slaves.sh
创建目录
sudo mkdir /var/lib/mesos
启动Mesos Master/Agent
启动Mesos master
sudo su -
mesos-master --ip=127.0.0.1 --work_dir=/var/lib/mesos
启动Mesos代理
sudo su -
mesos-agent --master=127.0.0.1:5050 --work_dir=/var/lib/mesos
如果能够访问http://127.0.0.1:5050并确认Master和Agent,则一切良好。
用附属的示例应用程序进行操作确认。
我将在构建时使用的文件夹中放置Python示例应用程序,以确认它是否可以在Mesos上运行。(我还有其他一些Java应用程序,但是在我的环境中无法运行,可能是因为缺少jar文件..)
cd ~/mesos/build
# Run Python framework
./src/examples/python/test-framework 127.0.0.1:5050
服务注册
在/etc/systemd/system目录下创建Unit定义文件。
需要创建的文件有以下两个。
分别用于Mesos主节点和Mesos代理节点。
-
- 以下是两个系统服务文件的路径:
/mesos-master.service在/etc/systemd/system目录下。
/mesos-agent.service在/etc/systemd/system目录下。
[Unit]
Description = Mesos master daemon
[Service]
ExecStart = /usr/local/sbin/mesos-master --ip=127.0.0.1 --work_dir=/var/lib/mesos
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
[Unit]
Description = Mesos agent daemon
[Service]
ExecStart = /usr/local/sbin/mesos-agent --master=127.0.0.1:5050 --work_dir=/var/lib/mesos
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
请根据需要修改 /etc/systemd/system/mesos-agent.service 文件中的 –master=127.0.0.1:5050 的 IP 部分。
这里设置了在同一台服务器上启动 master 和 agent 的配置。
确认是否被视为一项服务。
$ sudo systemctl list-unit-files --type=service | grep mesos
mesos-agent.service disabled
mesos-master.service disabled
作为服务启动
服务自动启动的设置和服务启动。
sudo systemctl enable mesos-master
sudo systemctl enable mesos-agent
# Start Mesos master
sudo systemctl start mesos-master
# Start Mesos agent
sudo systemctl start mesos-agent
确认启动状态
sudo systemctl status mesos-master
sudo systemctl status mesos-agent
只要确认启动状态就可以了。