tag site qué manager gtm gtag google funciones fragmento contenedor hadoop mapreduce yarn

hadoop - site - qué es el fragmento del contenedor en google tag manager



¿Qué es un contenedor en HILO? (7)

¿Qué es un contenedor en HILO? ¿Es lo mismo que la JVM secundaria en la que se ejecutan las tareas en el administrador de nodos o es diferente?


De acuerdo con el tamaño de los datos de entrada, se crean múltiples divisiones de entrada. El trabajo de MR necesita procesar toda esta información para que se creen múltiples tareas (asignar y reducir tareas). Entonces, para cada división de entrada será procesada por una tarea. Ahora, el administrador de recursos sugiere cómo ejecutar esta tarea. El administrador de recursos sabe qué gestor de nodos es gratuito y qué está ocupado, es como el director de la universidad y el administrador de nodo son los profesores de la facultad y el director sabe qué maestro es libre. Por lo tanto, le pide al administrador de nodos que ejecute esa tarea (una pequeña fracción del trabajo completo) en el contenedor, es decir, un área de memoria tal que jvm. Entonces, el trabajo se ejecuta como un maestro de aplicaciones dentro del contenedor.


En Hadoop 2.x, el contenedor es un lugar donde se produce una unidad de trabajo. Por ejemplo, cada tarea MapReduce (no el trabajo completo) se ejecuta en un contenedor.

Una aplicación / trabajo se ejecutará en uno o más contenedores.

Se asigna un conjunto de recursos del sistema para cada contenedor, actualmente se admiten el núcleo de la CPU y la RAM. Cada nodo en un clúster de Hadoop puede ejecutar varios contenedores.

En Hadoop 1.xa slot es asignado por JobTracker para ejecutar cada tarea de MapReduce. Luego TaskTracker genera una JVM separada para cada tarea (a menos que la reutilización de JVM no esté habilitada).


En términos simples, Container es un lugar donde se ejecuta una aplicación YARN. Está disponible en cada nodo. Application Master negocia el contenedor con el programador (uno de los componentes del Administrador de recursos). Los contenedores son lanzados por Node Manager.


La palabra ''Contenedor'' se usa en HILO en dos contextos,

Contenedor: Significa los recursos asignados a un ApplicationMaster. ResourceManager es responsable de emitir recurso / contenedor a un ApplicationMaster. Verifique la API del Container .

Lanzar un contenedor: en función de los recursos asignados (contenedores), ApplicationMaster solicita a NodeManager que inicie Contenedores, lo que da como resultado la ejecución de tareas en un nodo. Verifique la API de ContainerManager .


Puede haber múltiples contenedores en un solo nodo (o uno muy grande).

Se considera que todos los nodos del sistema están compuestos por varios contenedores de tamaño mínimo de memoria (digamos 512 MB o 1 GB). ApplicationMaster puede solicitar cualquier contenedor como un múltiplo del tamaño de memoria mínimo.

Source , ver la sección ResourceManager / Resource Model.


Representa un recurso (memoria) en un solo nodo en un clúster dado.
Un contenedor es

  • supervisado por el administrador del nodo
  • programado por el administrador de recursos

Una tarea MR se ejecuta en dicho contenedor (s) .


Container :

El arrendamiento lógico de los recursos y el proceso real creado en el nodo se usa indistintamente. Es el mismo proceso en el que se ejecutan las tareas (o AM). Para iniciar el contenedor proporcionamos contenedor de objetos y CLC (ContainerLaunchContext) en el que establecemos una lista de comandos para ejecutar tareas (o AM).

nmClient.startContainer(container, clcObj) ContainerLaunchContext code snippet : <code> . . . /** * Add the list of <em>commands</em> for launching the container. All * pre-existing List entries are cleared before adding the new List * @param commands the list of <em>commands</em> for launching the container */ @Public @Stable public abstract void setCommands(List<String> commands); </code>