以前は公式のマニュアルどおりにMesosのインストールを頑張ったが、Mesosのソースからビルドするのにとても時間がかかりました。
せっかちな私にはたまらない待ち時間でした。
以前の記事: Mesos v1.5.0をインストールする
https://qiita.com/48hands/items/4f9db52c58c29c30a2d1
調べてみると、サードパーティのMesosphere Communityがrpmを提供してくれているようなので、
これを使って今回はインストールしてみようと思います。
Download Apache Mesos Packages
https://open.mesosphere.com/downloads/mesos/
環境構成
サーバ4台のMesosクラスタ構成を目指します。
Vagrantでクラスタを構成するマシンを作成します。
以下は設定例です。OSはCentOS7でインストールします。
- node1: Mesosマスタ
- node2-node4: Mesosスレーブ
とします。
Vagrantfile
は以下を参照してください。筆者はあとでSparkを動かしたかったので、メモリを高めで設定しています。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
(1..4).each do |no|
name = "node#{no}"
config.vm.define name do |node|
node.vm.provider "virtualbox" do |vm|
vm.name = name
vm.customize ["modifyvm", :id, "--memory", "2048"]
end
node.vm.box = "centos/7"
node.vm.hostname = name
node.vm.network "private_network", ip: "192.168.33.4#{no}"
node.vm.provision "shell", inline: "sudo systemctl stop firewalld"
node.vm.provision "shell", inline: "sudo systemctl disable firewalld"
node.vm.provision "shell", inline: "sudo systemctl restart network"
end
end
end
起動します。
vagrant up node1 node2 node3 node4
ローカルから公開鍵でログインしたい場合の設定はお好みで。
vagrant ssh-config >> ~/.ssh/config
Mesosのインストール
すべてのマシン(node1-node4)で以下のコマンドを実行してMesosをインストールします。
今回はCentOS7に、Mesos1.5.0をインストールします。Ubuntuなどを利用する場合は、以下参照してください。
https://open.mesosphere.com/downloads/mesos/
curl -O http://repos.mesosphere.com/el/7/x86_64/RPMS/mesos-1.5.0-2.0.1.el7.x86_64.rpm
sudo yum install -y mesos-1.5.0-2.0.1.el7.x86_64.rpm
これだけで終わりです。
Mesosマスタの設定と起動
node1
〜node4
にMesosインストールが完了したら、
Mesosマスタから設定していきます。
この作業はnode1
で実施します。
基本的には/etc/default/mesos
(マスタとスレーブで共通的な設定)、/etc/default/mesos-master
(マスタの設定)を設定します。
詳しい設定については、以下を参照してください。
http://mesos.apache.org/documentation/latest/configuration/
/etc/default/mesos
LOGS=/var/log/mesos
ULIMIT="-n 8192"
IP=node1のIP
/etc/default/mesos-master
PORT=5050
# Zookeeperを使わないようにコメントアウトしています。
# ZK=`cat /etc/mesos/zk`
# WebUIに表示されるMesosクラスタ名
CLUSTER="Trial Env"
設定完了したら、起動します。
ついでにnode1
ではマスタのみ自動起動して、スレーブは自動起動しないように設定しておきます。
sudo systemctl start mesos-master
sudo systemctl enable mesos-master
sudo systemctl disable mesos-slave
この状態でMesosのUIにアクセスできればOKです。
http://[node1のIP]:5050

Mesosスレーブの設定と起動
Mesosスレーブを設定していきます。
この作業はnode2
,node3
,node4
で実施します。
/etc/default/mesos
(マスタとスレーブで共通的な設定)、/etc/default/mesos-slave
(スレーブの設定)を設定します。
詳しい設定については、以下を参照してください。
http://mesos.apache.org/documentation/latest/configuration/
/etc/default/mesos
LOGS=/var/log/mesos
ULIMIT="-n 8192"
IP=各マシンのIP
/etc/default/mesos-slave
MASTER=node1のIP:5050
設定完了したら、起動します。
ついでにnode2
,node3
,node4
ではスレーブのみ自動起動して、マスタは自動起動しないように設定しておきます。
sudo systemctl start mesos-slave
sudo systemctl enable mesos-slave
sudo systemctl disable mesos-master
この状態でMesosのUIにアクセスして、Agentタブからnode2
,node3
,node4
が確認できればOKです。

ここで構築したMesosクラスタとSparkを連携してみる手順は、以下をご参照ください。
[SparkをインストールしてMesosクラスタと疎通確認するまでの手順]
https://qiita.com/48hands/items/375993c042eb03e05e77