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