¿Qué hace Apache Mesos en realidad?


Estoy tratando de envolver mi cabeza en Apache Mesos y necesito aclaración sobre algunos elementos.

Mi comprensiónde Mesos es que es un ejecutable que se instala en cada servidor físico/VM (" nodo") en un clúster, y luego proporciona una API Java (de alguna manera) que trata a cada nodo individual como un conjunto colectivo de recursos informáticos (CPU/RAM/etc.). Por lo tanto, a los programas que codifican contra la API de Java, solo ven 1 conjunto único de recursos, y no tiene que preocuparse por cómo / dónde se implementa el código.

Así que para empezar, podría estar fundamentalmente equivocado en mi comprensión aquí (en cuyo caso, ¡por favor corríjame!). Pero si estoy en el objetivo, entonces ¿cómo la API de Java (proporcionada por Mesos) permite a los clientes Java aprovechar estos recursos?!? ¿Puede alguien dar un ejemplo concreto de Mesos en acción?


Actualización

Echa un vistazo a mi horrible dibujo de abajo. Si entiendo la arquitectura Mesos correctamente, tenemos un grupo de 3 servidores físicos(phys01, phys02 y phys03). Cada uno de estos físicos está ejecutando un host Ubuntu (o lo que sea). A través de un hipervisor, digamos, Xen, podemos ejecutar más de 1 VM.

Estoy interesado en Docker y CoreOS, así que los usaré en este ejemplo, pero supongo que lo mismo podría aplicarse a otras configuraciones que no sean contenedores.

Así que en cada VM tenemos CoreOS. Se ejecuta en cada instancia de CoreOS un ejecutable/servidor Mesos. Todos los nodos Mesos en un clúster ven todo debajo de ellos como un solo grupo de los recursos y los artefactos se pueden implementar arbitrariamente en el clúster de Mesos y Mesos averiguará a qué instancia de CoreOS realmente implementarlos.

Corriendo encima de Mesos hay un "framework Mesos" como Marathon o Kubernetes. Dentro de Kubernetes se ejecutan varios contenedores Docker(C1 - C4).

introduzca la descripción de la imagen aquí

¿Es este entendimiento de Mesos más o menos correcto?

Author: smeeb, 2015-01-22

1 answers

Su resumen es casi correcto, pero no refleja la esencia de lo que mesos representa. La visión de mesosphere, la Compañía detrás del proyecto, es crear un "Sistema Operativo de Centro de Datos" y el mesos es el núcleo de la misma en analogía con el núcleo de un sistema operativo normal. La API no se limita a Java, puede usar C, C++, Java/Scala o Python. Si ha configurado su clúster de mesos, como describe en su pregunta y desea usar sus recursos, generalmente lo hace a través de un framework en lugar de ejecutar su carga de trabajo directamente en él. Esto no significa que esto sea complicado aquí hay un pequeño ejemplo en Scala que demuestra esto. Existen marcos para múltiples sistemas populares de procesamiento de datos distribuidos como Apache Spark, Apache Cassandra. Hay otros frameworks como Chronos un cron a nivel de centro de datos o Marathon que le permite ejecutar basado en Docker aplicación.

Actualización:

Sí, mesos se encargará de la colocación en el clúster, ya que eso es lo que hace un núcleo scheduling programación y gestión de recursos limitados. Sin embargo, la configuración que ha esbozado plantea varias preguntas obvias.

Capas debajo de mesos: Instalar mesos en CoreOS es posible pero engorroso como creo. Este no es un escenario típico para ejecutar mesos usually por lo general se mueve a la capa más baja posible (por encima de Ubuntu en su caso). Así que espero que tengas buenas razones para ejecutar CoreOS y un hipervisor.

Capas sobre mesos: Kubernetes ist disponible como framework y mesosphere parece poner mucho esfuerzo en ello. Sin embargo, no cabe duda de que hay una superposición parcial en términos de funcionalidad, especialmente con respecto a la programación. Si desea programar cargas de trabajo básicas basadas en contenedores, podría estar mejor con Marathon o en el futuro tal vez Aurora . Tan también aquí espero que tenga buenas razones para este arreglo. Nota al margen: Kubernetes es similar a Marathon con un enfoque más amplio y bastante obstinado.

 25
Author: vanthome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-27 22:06:45