一:YARN -資源管理調(diào)度框架

job的執(zhí)行流程:
1.提交--------RunJar的客戶端跟ResourceManager 協(xié)作完成job的提交
2.分配資源----resourcemanager和nodemanager 協(xié)作完成job運行所需要的資源分配
3.運行Job------Mapreduce框架中的主管進程MRAMaster負責整個Job運行過程的協(xié)調(diào)控制
二:mr job的幾種運行模式
1、在eclipse中開發(fā)好mr程序(windows或linux下都可以),然后打成jar包(wc.jar),上傳到服務(wù)器? 執(zhí)行命令? ? hadoop jar wc.jar cn.itheima.hadoop.MainClassRunner這種方式會將這個job提交到y(tǒng)arn集群上去運行
2、在Linux的eclipse中直接啟動Runner類的main方法,這種方式可以使job運行在本地,也可以運行在yarn集群--究竟運行在本地還是在集群,取決于一個配置參數(shù)?mapreduce.framework.name == yarn (local)
?如果確實需要在eclipse中提交到y(tǒng)arn執(zhí)行,必須做好以下兩個設(shè)置
? ? ?a/將mr工程打成jar包(wc.jar),放在工程目錄下
? ? ?b/在工程的main方法中,加入一個配置參數(shù)? conf.set("mapreduce.job.jar","wc.jar");
3、在windows的eclipse中運行本地模式,步驟為:
? ? ----a、在windows中找一個地方放一份hadoop的安裝包,并且將其bin目錄配到環(huán)境變量中
? ? ----b、根據(jù)windows平臺的版本(32?64?win7?win8?),替換掉hadoop安裝包中的本地庫(bin,lib)
? ? ----c、mr程序的工程中不要有參數(shù)mapreduce.framework.name的設(shè)置
4、在windows的eclipse中運行main方法來提交job到集群執(zhí)行,比較麻煩
? ? ? ----a、類似于方式3中所描述的對本地庫兼容性進行改造
? ? ? ----b、修改YarnRunner這個類? ?