我們很榮幸能夠見證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最新數據白皮書整理資料!
文章來源: https://twgreatdaily.com/zh/DePi1mwBJleJMoPMAbtg.html