Hadoop精华问答 | NameNode的工作特点
我們很榮幸能夠見證Hadoop十年從無到有,再到稱王。感動于技術(shù)的日新月異時,讓我們再來看看關(guān)于Hadoop的精華問答。
1
Q:NameNode的工作特點(diǎn)
A:NameNode始終在內(nèi)存中保存metedata,用于處理“讀請求”,到有“寫請求”到來時,NameNode首先會寫editlog到磁盤,即向edits文件中寫日志,成功返回后,才會修改內(nèi)存,并且向客戶端返回。
Hadoop會維護(hù)一個人fsimage文件,也就是NameNode中metedata的鏡像,但是fsimage不會隨時與NameNode內(nèi)存中的metedata保持一致,而是每隔一段時間通過合并edits文件來更新內(nèi)容。Secondary NameNode就是用來合并fsimage和edits文件來更新NameNode的metedata的。
2
Q:某個節(jié)點(diǎn)上任務(wù)數(shù)目太多,資源利用率太高,怎么控制一個節(jié)點(diǎn)上的任務(wù)數(shù)目?
A:一個節(jié)點(diǎn)上運(yùn)行的任務(wù)數(shù)目主要由兩個因素決定,一個是NodeManager可使用的資源總量,一個是單個任務(wù)的資源需求量,比如一個NodeManager上可用資源為8 GB內(nèi)存,8 cpu,單個任務(wù)資源需求量為1 GB內(nèi)存,1cpu,則該節(jié)點(diǎn)最多運(yùn)行8個任務(wù)。
NodeManager上可用資源是由管理員在配置文件yarn-site.xml中配置的,相關(guān)參數(shù)如下:
yarn.nodemanager.resource.memory-mb:總的可用物理內(nèi)存量,默認(rèn)是8096
yarn.nodemanager.resource.cpu-vcores:總的可用CPU數(shù)目,默認(rèn)是8
對于MapReduce而言,每個作業(yè)的任務(wù)資源量可通過以下參數(shù)設(shè)置:
mapreduce.map.memory.mb:物理內(nèi)存量,默認(rèn)是1024
mapreduce.map.cpu.vcores:CPU數(shù)目,默認(rèn)是1
默認(rèn)情況,各個調(diào)度器只會對內(nèi)存資源進(jìn)行調(diào)度,不會考慮CPU資源,你需要在調(diào)度器配置文件中進(jìn)行相關(guān)設(shè)置。
3
Q:如何設(shè)置單個任務(wù)占用的內(nèi)存量和CPU數(shù)目?
A:對于MapReduce而言,每個作業(yè)的任務(wù)資源量可通過以下參數(shù)設(shè)置:
mapreduce.map.memory.mb:物理內(nèi)存量,默認(rèn)是1024
mapreduce.map.cpu.vcores:CPU數(shù)目,默認(rèn)是1
需要注意的是,默認(rèn)情況,各個調(diào)度器只會對內(nèi)存資源進(jìn)行調(diào)度,不會考慮CPU資源,你需要在調(diào)度器配置文件中進(jìn)行相關(guān)設(shè)置。
4
Q:用戶給任務(wù)設(shè)置的內(nèi)存量為1000MB,為何最終分配的內(nèi)存卻是1024MB?
A:為了易于管理資源和調(diào)度資源,Hadoop YARN內(nèi)置了資源規(guī)整化算法,它規(guī)定了最小可申請資源量、最大可申請資源量和資源規(guī)整化因子,如果應(yīng)用程序申請的資源量小于最小可申請資源量,則YARN會將其大小改為最小可申請量,也就是說,應(yīng)用程序獲得資源不會小于自己申請的資源,但也不一定相等;如果應(yīng)用程序申請的資源量大于最大可申請資源量,則會拋出異常,無法申請成功;規(guī)整化因子是用來規(guī)整化應(yīng)用程序資源的,應(yīng)用程序申請的資源如果不是該因子的整數(shù)倍,則將被修改為最小的整數(shù)倍對應(yīng)的值,公式為ceil(a/b)*b,其中a是應(yīng)用程序申請的資源,b為規(guī)整化因子。
以上介紹的參數(shù)需在yarn-site.xml中設(shè)置,相關(guān)參數(shù)如下:
yarn.scheduler.minimum-allocation-mb:最小可申請內(nèi)存量,默認(rèn)是1024
yarn.scheduler.minimum-allocation-vcores:最小可申請CPU數(shù),默認(rèn)是1
yarn.scheduler.maximum-allocation-mb:最大可申請內(nèi)存量,默認(rèn)是8096
yarn.scheduler.maximum-allocation-vcores:最大可申請CPU數(shù),默認(rèn)是4
對于規(guī)整化因子,不同調(diào)度器不同,具體如下:
FIFO和Capacity Scheduler,規(guī)整化因子等于最小可申請資源量,不可單獨(dú)配置。
Fair Scheduler:規(guī)整化因子通過參數(shù)yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores設(shè)置,默認(rèn)是1024和1。
通過以上介紹可知,應(yīng)用程序申請到資源量可能大于資源申請的資源量,比如YARN的最小可申請資源內(nèi)存量為1024,規(guī)整因子是1024,如果一個應(yīng)用程序申請1500內(nèi)存,則會得到2048內(nèi)存,如果規(guī)整因子是512,則得到1536內(nèi)存。
5
Q:hadoop能干什么?
A:hadoop擅長日志分析,facebook就用Hive來進(jìn)行日志分析,2009年時facebook就有非編程人員的30%的人使用HiveQL進(jìn)行數(shù)據(jù)分析;淘寶搜索中的自定義篩選也使用的Hive;利用Pig還可以做高級的數(shù)據(jù)處理,包括Twitter、LinkedIn 上用于發(fā)現(xiàn)您可能認(rèn)識的人,可以實(shí)現(xiàn)類似Amazon.com的協(xié)同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業(yè)是用pig運(yùn)行的,包括垃圾郵件的識別和過濾,還有用戶特征建模。(2012年8月25新更新,天貓的推薦系統(tǒng)是hive,少量嘗試mahout!)
小伙伴們沖鴨,后臺留言區(qū)等著你!
關(guān)于Hadoop,今天你學(xué)到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區(qū)打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風(fēng)里雨里留言區(qū)里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
2、公眾號后臺回復(fù):白皮書,獲取IDC最新數(shù)據(jù)白皮書整理資料!
推薦閱讀:
上萬條數(shù)據(jù)撕開微博熱搜的真相!
IT公司老板落水,各部門員工怎么救??
HTML 30 年進(jìn)化史
讀了鴻蒙 OS 的代碼后,我發(fā)現(xiàn)優(yōu)秀項(xiàng)目都有這個共性!
字節(jié)跳動李航:自學(xué)機(jī)器學(xué)習(xí),研究AI三十載,他說AI發(fā)展或進(jìn)入平緩期
主鏈增幅最高飚至152%,主流幣卻驚現(xiàn)回落;以太坊發(fā)幣速度持續(xù)放緩
真香,朕在看了!
總結(jié)
以上是生活随笔為你收集整理的Hadoop精华问答 | NameNode的工作特点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost::contract模块实现p
- 下一篇: boost::contract模块实现o