使ってますか。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
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
Mesosクラスタ完成
まとめ
Mesosクラスタは非常に簡単に構築できます。
今回は一台の中にすべての要素をいれましたが、複数台であっても基本は同じです。
mesos agentをインストールし、zookeeperにつなげてやってください。
ぜひ、分散システム管理のお供にMesosをどうぞ