开头的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)

广告
将在 10 秒后关闭
bannerAds