2017-02-10 90 views
3

有人能幫助我理解JVM和YARN中容器之間的關係嗎?YARN:容器和JVM

  • 如何創建JVM,它是每個任務的一個JVM嗎?多個任務可以同時在同一個JVM中運行? (我知道ubertasking許多任務(maps/reduce)可以在同一個JVM中依次運行)。
  • 它是每個容器的一個JVM嗎?或單個JVM中有多個容器?或者JVM和容器之間沒有關係?
  • 當資源管理器爲作業分配容器時,同一作業中的多個任務是否對同一節點中運行的任務使用相同的容器?或根據可用性爲每個任務分開容器?

指向一些有用的鏈接也將有所幫助。

+1

此鏈接有用:http://hortonworks.com/blog/apache-hadoop-yarn-concepts-和應用程序/ –

回答

4

它是每個容器的一個JVM嗎?或單個JVM中有多個容器?或者JVM和容器之間沒有關係?

當然存在一個關係,它是一對一的關係。對於每個需要創建的容器,都會生成一個新的Java進程(JVM)。

現在,如果你沒有在超級模式下運行,可以考慮以下幾點: -

如何創建的JVM,它是每個任務一個JVM?多個任務可以同時在同一個JVM中運行? (我知道ubertasking許多任務(maps/reduce)可以在同一個JVM中依次運行)。

請參閱,任務計劃在集羣中的某個節點上運行。根據任務的要求(內存和CPU)決定容器的容量。還有一些參數可以在下面的鏈接中找到。
每個任務嘗試都在JVM上進行計劃。

當資源管理器爲作業分配容器時,同一作業中的多個任務是否對同一節點中運行的任務使用相同的容器?或根據可用性爲每個任務分開容器?

根據羣集中的資源可用性生成每個任務的單獨容器。

這裏有一些鏈接,其非常有helpful-
http://ercoppa.github.io/HadoopInternals/AnatomyMapReduceJob.html
https://blog.cloudera.com/blog/2015/09/untangling-apache-hadoop-yarn-part-1/
http://blog.cloudera.com/blog/2014/04/apache-hadoop-yarn-avoiding-6-time-consuming-gotchas/