22 feb

¿Cómo instalar Apache-Mesos?

En el post anterior explicamos qué es Mesos y como funciona internamente, así que, como no puede ser de otra manera, toca instalarlo.

La mejor manera que encontré de instalar Apache-Mesos es utilizando los paquetes de mesosphere.

Nuestro excenario inicial es:

  • 3 servidores Mesos master y ZooKeeper cluster
  • 3 servidores mesos slave
  • Centos 7
  • Y lo montaremos en EC2

Pues al lío.

Empezarnos por los nodos master, estos pasos los debemos hacer en todos los nodos master que tengamos

Instalación de paquetes

Añadimos el repositorio

sudo rpm -Uvh http://repos.mesosphere.io/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

Actualizamos

yum update

Instalamos Mesos

sudo yum -y install mesos

Instalamos zookeeper

sudo yum -y install mesosphere-zookeeper

Configuración de ZooKepeer

Antes de nada deberemos configurar ZooKepeer, deberemos añadir un numero diferente en cada servidor master, entre el 1 y el 255, en nuestro caso lo añadiremos en

/var/lib/zookeeper/myid

Ahora en todos los nodos de ZooKepeer deberemos decirle donde estan los otros nodos del cluster, esto se hace de la siguiente manera.

vi /etc/zookeeper/conf/zoo.cfg

Añadimos con las ips correctas

server.1=1.1.1.1:2888:3888
server.2=2.2.2.2:2888:3888
server.3=3.3.3.3:2888:3888

Y arrancamos ZooKepeer

sudo systemctl start zookeeper

Configuración de Mesos

Estos pasos también los haremos en todos los miembros master del cluster

Configuramos Mesos para que trabaje con ZooKeeper

vi /etc/mesos/zk

Añadimos las ips de los servidores de ZooKepeer

zk://1.1.1.1:2181,2.2.2.2:2181,3.3.3.3:2181/mesos

Defeninimos el quorum que queremos

vim /etc/mesos-master/quorum
2

Por ultimo debilitamos el servicio de mesos-slave que se nos instalo con el paquete y arrancamos mesos-master.

systemctl stop mesos-slave.service
systemctl disable mesos-slave.service
sudo service mesos-master restart

Comprobamos que el servicio este levantado correctamente.

<pre> systemctl status mesos-master -l
mesos-master.service - Mesos Master
   Loaded: loaded (/usr/lib/systemd/system/mesos-master.service; enabled)
   Active: active (running) since Sun 2015-02-15 11:22:50 UTC; 7min ago
 Main PID: 1156 (mesos-master)
   CGroup: /system.slice/mesos-master.service
           ├─1156 /usr/sbin/mesos-master --zk=zk://172.30.0.111:2181,172.30.0.145:2181,172.30.0.146:2181/mesos --port=5050 --log_dir=/var/log/mesos --quorum=1 --registry=in_memory --work_dir=/var/lib/mesos
           ├─1168 logger -p user.info -t mesos-master[1156]
           └─1169 logger -p user.err -t mesos-master[1156]

Feb 15 11:26:03 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:03.540731  1171 master.cpp:1263] The newly elected leader is [email protected]:5050 with id 20150205-134012-1862278828-5050-813
Feb 15 11:26:08 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:08.747304  1175 http.cpp:478] HTTP request for '/master/state.json'
Feb 15 11:26:12 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:12.015610  1176 detector.cpp:138] Detected a new leader: (id='51')
Feb 15 11:26:12 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:12.015688  1176 group.cpp:659] Trying to get '/mesos/info_0000000051' in ZooKeeper
Feb 15 11:26:12 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:12.016731  1176 detector.cpp:433] A new leading master ([email protected]:5050) is detected
Feb 15 11:26:12 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:12.016767  1176 master.cpp:1263] The newly elected leader is [email protected]:5050 with id 20150215-111558-2432704172-5050-808
Feb 15 11:26:19 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:19.730078  1171 http.cpp:478] HTTP request for '/master/state.json'
Feb 15 11:26:27 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:26:27.725008  1171 http.cpp:344] HTTP request for '/master/redirect'
Feb 15 11:27:12 ip-172-30-0-111.us-west-2.compute.internal mesos-master[1169]: I0215 11:27:12.129428  1170 http.cpp:344] HTTP request for '/master/redirect'
Feb 15 11:30:02 ip-172-30-0-111.us-west-2.compute.internal systemd[1]: Started Mesos Master.

La salida de systemctl me parece de lo mas interesante, podemos ver información muy útil, como por ejemplo los nodos de zookeeper o quien es el líder del cluster “Detected a new leader”. 

A más a más, Apache-Mesos dispone de una interfaz web, a la cual podemos acceder por el puerto 5050 y veremos cosas como esta.

main

Podemos ver información, casi en tiempo real de la situación del cluster, vemos los recursos utilizados y disponibles, las tareas activas etc etc, si quisiéramos podemos incluso ver el log del sistema (también esta en /var/log/mesos)

main3En la pestaña Slaves también podemos ver (obvio) el estado de los slaves, que recordemos que son los responsables de ejecutar las tareas.

main2Y por ultimo los Frameworks que tenemos registrados, en nuestro caso tenemos Marathon, un framework muy interesante que explicaré en las siguientes entradas.

 





One thought on “¿Cómo instalar Apache-Mesos?

  1. Pingback: Marathon framework para Apache-Mesos | Miguel Ángel Ausó

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>