开头的Apache Mesos
Apache Mesos是一个开源的集群管理器。
关于Apache Mesos。据说这个词的发音是”Meisosu”。这是工作备忘录,并不打算展示给任何人。希望得到解释等的人可以参考最后附上的参考资料。
尝试在Mesos上运行Docker
无论如何,这就是Docker。
环境 –
-
- MacOS 10.9.5
- Vagrant x VirtualBox x CentOS 6.5
操作步骤
首先,作为一个测试,我尝试在单个节点上运行Mesosphere。你可以参考这里。
安装Mesos、Marathon、Chronos
以下是中文的同义句:这里提供参考
Ubuntu和Debian
# Setup
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E56151BF
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)
# Add the repository
echo "deb http://repos.mesosphere.io/${DISTRO} ${CODENAME} main" | \
sudo tee /etc/apt/sources.list.d/mesosphere.list
sudo apt-get -y update
# Install packages
sudo apt-get -y install mesos marathon chronos
RedHat和CentOS
# Add the repository
sudo rpm -Uvh http://repos.mesosphere.io/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
# Install packages
sudo yum -y install mesos marathon chronos
安装ZooKeeper。
sudo rpm -Uvh http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
sudo yum -y install zookeeper
sudo zookeeper-server-initialize --myid=1
# => Using myid of 1
配置可以保持默认状态。有关默认配置的详细信息,请参阅此处。
启动各种操作
动物园管理员启动
# Ubuntu / Debian
sudo service zookeeper restart
# RedHat / CentOS
sudo zookeeper-server start
# => JMX enabled by default
# Using config: /etc/zookeeper/conf/zoo.cfg
# Starting zookeeper ... STARTED
启动Mesos主/从节点和Marathon。
sudo service mesos-master start
sudo service mesos-slave start
sudo service marathon start
确认是否能够访问Mesos和Marathon的控制台。它们应该在5050和8080端口上运行。
无法启动
在CentOS6.5中,尽管启动zookeeper方面进行得很顺利,但是遇到了问题。
sudo service mesos-master start
# => mesos-master: unrecognized service
sudo service mesos-slave start
# => mesos-slave: unrecognized service
sudo service marathon start
# => marathon: unrecognized service
嗯。
ls /etc/init.d/mesos*
# => ls: cannot access /etc/init.d/mesos*: No such file or directory
嗯。
which mesos-master
# => /usr/local/sbin/mesos-master
which mesos-slave
# => /usr/local/sbin/mesos-slave
which marathon
# => /usr/local/bin/marathon
噢?
mesos-master start
# => Segmentation fault
嗯。
sudo /usr/local/sbin/mesos-master start
在本地主机上访问localhost:5050时,什么也不会发生,也没有任何输出。需要查看源代码吗?
麻烦
我陷入困境了。正在寻找公式文件,想知道到底是什么问题。
使用Vagrant进行虚拟机安装
哎呀?
git clone https://github.com/mesosphere/playa-mesos.git
cd playa-mesos
vagrant up
………。
继续使用Mesos来运行Docker试试看。
基础设施即代码是为了摧毁这种安装迷的存在,因此在这个领域不可能没有准备,而且我们必须强烈意识到不能仅限于”首先尝试安装”的想法才能生存下来。让我们尝试在Mesosphere上启动一个Docker容器。
# 配布されているVagrantfileから立ち上げたものではパーミッション変更が必要ぽい
chmod u+w /etc/mesos-slave
sudo echo 'docker,mesos' > /etc/mesos-slave/containerizers
sudo echo '5mins' > /etc/mesos-slave/executor_registration_timeout
sudo service mesos-slave restart
创建~/mesos/Docker.json文件。
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu",
"instances": "1",
"cpus": "0.5",
"mem": "512",
"uris": [],
"cmd": "while sleep 10; do date -u +%T; done"
}
用curl命令通过HTTP POST将此项发送到http://localhost:8080/apps。
curl -X POST -H "Content-Type: application/json" http://localhost:8080/v2/apps -d@Docker.json
在本地主机上的5050端口,Mesos会显示任务和资源的状态,并在本地主机上的8080端口,Marathon会将容器作为应用程序来进行管理。
然而
静止不动。
在Mesos的Complete Tasks中,有一個狀態為FAILED的任務,並且Marathon應用程序的實例仍然為0/1。這意味著…
# dockerが入ってないのでは?
which docker
# => /usr/local/bin/docker
# ってことはバージョンが古い?
docker --version
# => Docker version 0.9.1, build 3600720
根据”需要在每个从节点上安装 Docker 版本1.0.0或更高版本”的要求,需要进行更新。
sudo apt-get update && sudo apt-get install -y docker
在安装过程中被要求指定分区来安装grub,因此只需指定VBOX的分区。安装完成后,重新尝试curl命令…成功了!容器正在运行。接下来只需要在主从节点上分别进行安装就可以了。随便找点计算机来组成一个小型本地AWS似乎是可行的。只需要编写这个工具的包装器和执行支持的CUI工具即可。
因此继续。
参考文献
暫時搜索並讀取了所有能找到的資料。在正式建構時,我想我會更需要您的幫助。非常感謝。
-
- Launching a Docker Container on Mesosphere
An introduction to Apache Mesos – Dailymotion (20140303)
正月休みだし Mesos 触ってみた (20140104)
Fluentd on Mesos + Docker + Marathon (20131220)
EC2でMesosによるクラスタの自動デプロイを実現するElastic Mesos (20140113)
翻訳,原文は
Elastic Mesos service automates Mesos cluster deployment in EC2 (20131217)
[Spark][Mesos]SparkバッチをMesosの上で動作させる(その1 (20131129)
[Mesos]Hadoop YARNとApache Mesosの違いって何? (20131104)
米Twitterなどでも利用されているクラスタマネージャ「Apache Mesos」、ApacheのTLPに昇格 (20130725)
相关文件
-
- Docker
Docker コンテナで InfiniBand を動かす(性能も測定しました) (20140203)
Docker を理解する – Docker User Guide (20140723)
VM上のDockerコンテナに固定ipを割り振ってホスト側から接続出来るようにする (20140801)
Apache Spark
Apache Spark ドキュメント和訳 – Quick Start (20140610)
Resource Manager High Availability
Resource Manager HA の概要と動かし方 (20131211)