Apache Mesosをインストールしてみよう


使ってますか。Apache Mesos

複数台のサーバを統合して、一台の巨大なサーバとして扱うことができるイカしたフレームワークです。

ref. Masataka Tsukamoto, Apache Mesos is 何?, https://speakerdeck.com/tsukaman/apache-mesos-is-he?slide=16

これまでアチラコチラで「Mesosサイコー」という資料をつくりましたが、どういう風にインストールするかを一度もまとめたことがなかったので、やってみたいと思います(๑•̀ㅂ•́)و✧

出来上がりのイメージ

一台の中にmaster/zookeeper/slaveが同居します。

必要なもの

  • Mac or Linux (この記事ではUbuntu 16.04LTSを使う)
  • 基本的なシェルの知識
  • 基本的なパッケージ管理ソフトウェアの知識
    • brew or apt-get

Mac

brewで全部入ります。

zookeeper

brew install zookeeper
zkServer start

mesos agent

brewが/usr/local/sbin/以下にバイナリを置こうとするので、なければ事前に作ってパスを通しておく

sudo mkdir /usr/local/sbin
sudo chown -R `whoami`:admin /usr/local/sbin
brew cask install homebrew/cask-versions/java8
brew install mesos

master

mesos-master --work_dir=/tmp --zk=zk://localhost:2181/mesos --quorum=1

この時点でlocalhost:5050にWebUIが立ち上がる。

slave

mesos-slave --work_dir=/tmp --master=zk://localhost:2181/mesos

WebUIの左下にリソースが追加されます。

Mesosクラスタ完成

Linux (Ubuntu 16.04)の人

zookeeper

sudo apt-get install zookeeperd
sudo systemctl restart zookeeper

mesos agent

init.shを準備

#!/bin/bash

# Setup
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv DF7D54CBE56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)

# Add the repository
echo "deb http://repos.mesosphere.com/${DISTRO} ${CODENAME} main" | 
          sudo tee /etc/apt/sources.list.d/mesosphere.list
sudo apt-get -y update
bash init.sh
sudo apt-get install mesos

master

sudo systemctl start mesos-master

この時点でlocalhost:5050にWebUIが立ち上がる。

slave

sudo systemctl start mesos-slalve

WebUIの左下にリソースが追加されます。

Mesosクラスタ完成

まとめ

Mesosクラスタは非常に簡単に構築できます。

今回は一台の中にすべての要素をいれましたが、複数台であっても基本は同じです。
mesos agentをインストールし、zookeeperにつなげてやってください。

ぜひ、分散システム管理のお供にMesosをどうぞ