先作以下聲明,本代碼版本是基於 3.1.2 版本。前端
其實,咱們本身在寫代碼的時候,會有意識地將比較大的功能項獨立成包,獨立成module, 獨立成項目,項目之間的關係既容易閱讀理解,又便於管理。node
以下,是hadoop-yarn-project的module截圖: web
Hadoop YARN 的大部分功能在 hadoop-yarn-project module 下,現將該module下各個module 的功能作一個大體的說明【順序按上面截圖自上而下】:docker
hadoop-yarn-api:YARN的跨平臺外部接口。定義了 公共的 Application Master 的攔截器、相關資源的API、YARN服務以及通訊過程當中用到的records類以及相關的工具類、相關異常、shell
hadoop-yarn-application:其下包含了5個module, 分別是 apache
hadoop-yarn-applications-catalog:YARN應用程序catalog是用於在Hadoop上部署支持docker的雲應用程序的應用程序catalog。簡言之,這部分是 對docker 的支持的catalogapi
hadoop-yarn-applications-distributedshell:對分佈式運行腳本的支持緩存
hadoop-yarn-applications-unmanaged-am-launcher:UnmanagedLauncher是一個啓動和非託管AM的簡單客戶端。非託管AM是由RM未啓動和管理的AM。客戶端在RM上建立新應用程序並協商新的attempt ID。而後等待RM應用程序狀態到達YarnApplicationState.ACCEPTED,以後它在另外一個進程中生成AM並經過env變量Environment.CONTAINER_ID將容器ID傳遞給它。 AM可使用任何語言。 AM可使用從容器ID得到的嘗試ID向RM註冊並正常進行。客戶端將app stdout和stderr重定向到本身的stdout和stderr,並等待AM進程退出。而後它等待RM報告應用程序完成。安全
hadoop-yarn-services:包含兩個module,hadoop-yarn-services-api 提供了YARN 服務的客戶端API、以及用於YARN 服務的 API;hadoop-yarn-services-core 提供了 yarn 服務的框架網絡
hadoop-yarn-client:hadoop yarn 的客戶端 API 以及 相關工具類支持
hadoop-yarn-common:hadoop yarn 的client和 server 的 公用工具類庫,定義了一些用於網絡傳輸的 pb實現的record以及建立records 的工廠,事件的分發器、ipc、日誌聚集相關的支持、Node的label的支持、和對安全的支持、sharedcache 的checksum的校驗、狀態機的定義、圖的定義以及 web 前端的支持等。
hadoop-yarn-registry:如今該部分功能已經遷移到 hadoop-common-project module 下的 hadoop-registry module 下面,主要功能是負責 hadoop Service 的註冊,包括服務註冊的命令行工具類org.apache.hadoop.registry.cli.RegistryCli;YARN client註冊的API,註冊綁定的工具類、定義了註冊服務過程的異常、以及 Curator 和 Zookeeper 對 服務發現綁定的 支持、DNS Server的建立來幫助服務發現或者YARN 應用,以及和 RM 的集成,以及服務端爲YARN 提供服務註冊的基礎服務等。
hadoop-yarn-server module下包含了以下模塊【下面模塊中以 hadoop-yarn-server開頭的module】:
hadoop-yarn-server-applicationhistoryservice:applicationhistoryservice 服務
hadoop-yarn-server-common:nodemanager 和 resourcemanager 的共享 API
hadoop-yarn-server-nodemanager: nodemanager 服務,替代了 hadoop的TaskTracker
hadoop-yarn-server-resourcemanager: resourcemanager 服務, 替代了 hadoop的JobTracker
hadoop-yarn-server-router:hadoop yarn的 router 服務
hadoop-yarn-server-sharedcachemanager:sharedcache 服務
hadoop-yarn-server-tests:這個是一個測試的module主要對 hadoop-yarn-server module下的各個module的測試
hadoop-yarn-server-timeline-pluginstorage:timeline-pluginstorage,請求查詢映射到緩存的接口
hadoop-yarn-server-timelineservice:timelineservice 持久化服務。timelineservice 主要負責兩種持久化服務:
hadoop-yarn-server-timelineservice-hbase:使用hbase 做爲 timelineservice 的底層持久化介質的接口
hadoop-yarn-server-timelineservice-hbase-tests:timelineservice-hbase 的測試類
hadoop-yarn-server-web-proxy:hadoop yarn server的web proxy
hadoop-yarn-site:關於 hadoop yarn 的一些關鍵的概念架構和相關術語的解釋
hadoop-yarn-ui:yarn前端UI
注:以上各個模塊的功能只是簡單根據module 包說明作的簡單彙總說明,可能歸納的不是很準確,後面寫到具體模塊時,會同步更新對應module 的功能概述。