wake-up-neo.com

Was ist ein Container in YARN?

Was ist ein Container in YARN? Stimmt es mit der untergeordneten JVM überein, in der die Aufgaben auf dem Knotenmanager ausgeführt werden, oder unterscheidet sie sich?

32
rahul

Es repräsentiert eine Ressource (Speicher) auf einem einzelnen Knoten in einem bestimmten Cluster.
Ein Container ist

  • überwacht vom Node Manager
  • vom Ressourcenmanager geplant

Eine MR-Task läuft in solchen Containern .

23
Lorand Bendig

Es können mehrere Container auf einem einzelnen Knoten (oder einem einzelnen sehr großen) vorhanden sein.

Jeder Knoten im System besteht aus mehreren Containern mit minimaler Speichergröße (z. B. 512 MB oder 1 GB). Der ApplicationMaster kann jeden Container als Vielfaches der Mindestspeichergröße anfordern.

Quelle siehe Abschnitt ResourceManager/Ressourcenmodell.

14
alien01

In Hadoop 2.x ist Container ein Ort, an dem eine Arbeitseinheit auftritt. Beispielsweise wird jede MapReduce-Aufgabe (nicht der gesamte Auftrag) in einem Container ausgeführt. 

Eine Anwendung/ein Job wird auf einem oder mehreren Containern ausgeführt.

Ein Satz von Systemressourcen wird für jeden Container zugewiesen. Derzeit werden CPU-Kern und RAM unterstützt. Jeder Knoten in einem Hadoop-Cluster kann mehrere Container ausführen. 

In Hadoop 1.x wird vom JobTracker ein Slot für die Ausführung jeder MapReduce-Task zugewiesen. Dann erzeugt der TaskTracker für jede Task eine separate JVM (sofern die JVM-Wiederverwendung nicht aktiviert ist).

4
TSiri

Das Wort "Container" wird in YARN in zwei Kontexten verwendet:

Container: Gibt einem ApplicationMaster zugewiesene Ressourcen an. ResourceManager ist für die Ausgabe von Ressourcen/Containern an einen ApplicationMaster verantwortlich. Überprüfen Sie Container API. 

Starten eines Containers: Basierend auf zugewiesenen Ressourcen (Containern) fordert ApplicationMaster NodeManager an, Container zu starten, was zur Ausführung von Aufgaben auf einem Knoten führt. Überprüfen Sie ContainerManager API.

3
Saket

The Container ist die Ressourcenzuordnung, die das erfolgreiche Ergebnis des ResourceManagers darstellt, der eine bestimmte ResourceRequest erteilt. Ein Container gewährt einer Anwendung die Berechtigung, eine bestimmte Menge von Ressourcen (Speicher, CPU usw.) auf einem bestimmten Host zu verwenden.

1

In einfachen Worten ist Container ein Ort, an dem eine YARN-Anwendung ausgeführt wird. Es ist in jedem Knoten verfügbar. Application Master handelt Container mit dem Scheduler (einer der Komponenten von Resource Manager) aus. Container werden vom Node Manager gestartet.

1
Amitesh Ranjan

Je nach Größe der Eingabedaten werden mehrere Eingabeaufteilungen erstellt. Der MR-Job muss diese gesamten Daten verarbeiten, sodass mehrere Aufgaben erstellt werden (Zuordnen und Reduzieren von Aufgaben). Für jeden Eingangssplit wird also eine Task verarbeitet. Wie Sie nun diese Aufgabe ausführen, wird vom Ressourcenmanager vorgeschlagen. Der Ressourcenmanager weiß, welcher Knotenmanager frei und welcher beschäftigt ist. Er ist wie der Schulleiter und der Knotenmanager der Klassenlehrer am College und der Schulleiter weiß, welcher Lehrer frei ist. Daher wird der Node Manager aufgefordert, diese Task (kleiner Bruchteil des gesamten Jobs) im Container, d. H. Dem Speicherbereich, wie jvm auszuführen. Der Job wird also als Anwendungsmaster im Container ausgeführt.

0
Kapil

Container ist ein Ort, an dem die Anwendung ihre Task ausführt. Wenn Sie wissen möchten, wie viele Container insgesamt in einem Cluster ausgeführt werden, können Sie die Benutzeroberfläche des Clusters Yarn-Resource Manager überprüfen.

Garn-URL: http: // Ihre-Active-ResourceManager-IP: 45020/cluster/apps/RUNNING

In der Spalte "Laufende Container" wird die Gesamt-Nr. von laufenden Containerdetails ist vorhanden.

Hinweis: Wenn Sie einen Funken verwenden, laufen die Funkenauslöser in den Container. Ein Container kann mehrere Funken-Executoren aufnehmen.

0
Prasanna
Container : 

Die logische Überlassung von Ressourcen und der tatsächliche Prozess, der auf dem Knoten erzeugt wird, wird austauschbar verwendet. Es ist derselbe Prozess, in dem Tasks (oder AM) ausgeführt werden. Zum Starten von Containern stellen wir Containerobjekte und CLC (ContainerLaunchContext) bereit, in denen eine Befehlsliste zum Ausführen von Tasks (oder AM) festgelegt wird.

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>
0
RahulV