Hadoop總結(jié)

Linux

1. 問題:Linux常用命令

參考答案:find续滋、df衣洁、tar撒璧、ps赐俗、top、netstat等蒙畴。(盡量說一些高級命令)

2. 問題:Linux查看內(nèi)存受楼、磁盤存儲转唉、io 讀寫命迈、端口占用、進程等命令

答案:

1火的、查看內(nèi)存:top

2壶愤、查看磁盤存儲情況:df -h

3、查看磁盤IO讀寫情況:iotop(需要安裝一下:yum install iotop)馏鹤、iotop -o(直接查看輸出比較高的磁盤讀寫程序)

4征椒、查看端口占用情況:netstat -tunlp | grep 端口號

5、查看進程:ps aux

Shell

3. 問題1:使用Linux命令查詢file1中空行所在的行號

答案:

[atguigu@hadoop102 datas]$ awk '/^$/{print NR}' file1.txt

5

4. 問題2:有文件chengji.txt內(nèi)容如下:

張三 40

李四 50

王五 60

使用Linux命令計算第二列的和并輸出

[atguigu@hadoop102 datas]$ cat chengji.txt | awk -F " " '{sum+=$2} END{print sum}'

150

5. 問題3:Shell腳本里如何檢查一個文件是否存在湃累?如果不存在該如何處理勃救?

#!/bin/bash

if [ -f file.txt ]; then

   echo "文件存在!"

else

   echo "文件不存在!"

fi

6. 問題4:用shell寫一個腳本,對文本中無序的一列數(shù)字排序

[root@CentOS6-2 ~]# sort -n test.txt|awk '{a+=$0;print $0}END{print "SUM="a}'

7. 問題5:請用shell腳本寫出查找當前文件夾(/home)下所有的文本文件內(nèi)容中包含有字符”shen”的文件名稱

[atguigu@hadoop102 datas]$ grep -r "shen" /home | cut -d ":" -f 1

/home/atguigu/datas/sed.txt

/home/atguigu/datas/cut.txt

入門

8. 簡要描述如何安裝配置apache的一個開源Hadoop治力,列出具體步驟蒙秒。

1)使用root賬戶登錄

2)修改IP

3)修改host主機名

4)配置SSH免密碼登錄

5)關(guān)閉防火墻

6)安裝JDK

7)解壓hadoop安裝包

8)配置hadoop的核心文件 hadoop-env.sh,core-site.xml , mapred-site.xml 宵统, hdfs-site.xml

9)配置hadoop環(huán)境變量

10)格式化 hadoop namenode-format

11)啟動節(jié)點start-dfs.sh start-yarn.sh

9. Hadoop中需要哪些配置文件晕讲,其作用是什么?

1)core-site.xml:

(1)fs.defaultFS:hdfs://cluster1(域名),這里的值指的是默認的HDFS路徑 瓢省。

(2)hadoop.tmp.dir:/export/data/hadoop_tmp,這里的路徑默認是NameNode弄息、DataNode、secondaryNamenode等存放數(shù)據(jù)的公共目錄勤婚。用戶也可以自己單獨指定這三類節(jié)點的目錄摹量。

2)hdfs-site.xml:

(1) dfs.replication:他決定著系統(tǒng)里面的文件塊的數(shù)據(jù)備份個數(shù),默認為3個馒胆。

(2) dfs.data.dir:datanode節(jié)點存儲在文件系統(tǒng)的目錄 缨称。

(3) dfs.name.dir:是namenode節(jié)點存儲hadoop文件系統(tǒng)信息的本地系統(tǒng)路徑 。

3)yarn-site.xml

(1)yarn.nodemanager.aux-services: Reducer獲取數(shù)據(jù)的方式為shuffle

(2)yarn.resourcemanager.hostname:指定YARN的ResourceManager的地址

4)mapred-site.xml:

mapreduce.framework.name: yarn指定mr運行在yarn上国章。

10. 請列出正常工作的Hadoop集群中Hadoop都分別需要啟動哪些進程具钥,它們的作用分別是什么?

1)NameNode:負責管理文件系統(tǒng)名稱空間和對集群中存儲的文件的訪問,保存有元數(shù)據(jù)液兽。

2)SecondaryNameNode:它輔助NameNode合并edits和fsimage骂删。

3)DataNode:負責存儲集群實實在在的數(shù)據(jù)。

4)ResourceManager:負責整個集群資源的調(diào)度四啰。

5)NodeManager:負責單個節(jié)點資源的調(diào)度宁玫。

6)DFSZKFailoverController:集群配置為高可用時它負責監(jiān)控NameNode的狀態(tài),柑晒。

7)JournalNode :高可用情況下存放namenode的editlog文件欧瘪。

11. 簡述Hadoop的幾個默認端口及其含義。

1)dfs.namenode.http-address:50070

2)SecondaryNameNode輔助名稱節(jié)點端口號:50090

3)dfs.datanode.address:50010

4)fs.defaultFS:8020 或者9000

5)yarn.resourcemanager.webapp.address:8088

  1. 歷史服務(wù)器web訪問端口:19888

HDFS

12. HDFS的存儲機制(讀寫流程)匙赞。

image.png

13. SecondaryNameNode 工作機制佛掖。

image.png

14. NameNode與SecondaryNameNode 的區(qū)別與聯(lián)系?

1)區(qū)別

(1)NameNode負責管理整個文件系統(tǒng)的元數(shù)據(jù)涌庭,以及每一個路徑(文件)所對應(yīng)的數(shù)據(jù)塊信息芥被。

(2)SecondaryNameNode主要用于定期合并命名空間鏡像和命名空間鏡像的編輯日志。

2)聯(lián)系:

(1)SecondaryNameNode中保存了一份和namenode一致的鏡像文件(fsimage)和編輯日志(edits)坐榆。

(2)在主namenode發(fā)生故障時(假設(shè)沒有及時備份數(shù)據(jù))拴魄,可以從SecondaryNameNode恢復數(shù)據(jù)。

15. 服役新數(shù)據(jù)節(jié)點和退役舊節(jié)點步驟

1)節(jié)點上線操作:

按照集群配置要求席镀,把服務(wù)器環(huán)境準備好匹中,然后直接啟動DataNode即可。

2)節(jié)點下線操作:

將要退役的節(jié)點添加到黑名單中豪诲,刷新namenode和resourcemanager顶捷。等該節(jié)點死亡時,手動將進程退出跛溉。

16. Namenode掛了怎么辦焊切?

方法一:將SecondaryNameNode中數(shù)據(jù)拷貝到namenode存儲數(shù)據(jù)的目錄扮授;

方法二:使用-importCheckpoint選項啟動namenode守護進程,從而將SecondaryNameNode中數(shù)據(jù)拷貝到namenode目錄中专肪。

17. 寫出你常用的HDFS命令

ls mkdir cat mv get put tail rm

18. HDFS原理刹勃,以及各個模塊的職責

1)NameNode:Master節(jié)點,只有一個嚎尤,管理HDFS的名稱空間和數(shù)據(jù)塊映射信息荔仁;配置副本策略;處理客戶端請求芽死。

2)DataNode:就是Slave乏梁。存儲實際的數(shù)據(jù);執(zhí)行數(shù)據(jù)塊的讀寫关贵;匯報存儲信息給NameNode遇骑。

3)Client:切分文件。訪問或通過命令行管理HDFS揖曾;與NameNode交互落萎,獲取文件為準信息;與DataNode交互炭剪,讀取和寫入數(shù)據(jù)练链。

4)SecondaryName弄得:輔助NameNode,分擔其工作量奴拦;定期合并fsimage和fsEdits媒鼓,推送給NameNode;緊急情況下错妖,可輔助恢復NameNode绿鸣,但SecondaryName并非NameNode的熱備。

MapReduce

19. FileInputFormat切片機制

(1)簡單地按照文件的內(nèi)容長度進行切片

(2)切片大小暂氯,默認等于Block大小

(3)切片時不考慮數(shù)據(jù)集整體枚驻,而是逐個針對每一個文件單獨切片

20. 如何決定一個job的map和reduce的數(shù)量?

1)map數(shù)量由切片個數(shù)決定

splitSize=max{minSize,min{maxSize,blockSize}}

2)reduce數(shù)量根據(jù)集群性能測試得出

reduce的數(shù)量job.setNumReduceTasks(x);x 為reduce的數(shù)量。不設(shè)置的話默認為 1株旷。

21. Maptask的個數(shù)由什么決定?

一個job的map階段MapTask并行度(個數(shù))尔邓,由客戶端提交job時的切片個數(shù)決定晾剖。

22. 請描述mapReduce有幾種排序及排序發(fā)生的階段。

1)排序的分類:

image.png

(5)自定義排序WritableComparable

2)排序發(fā)生的階段:

(1)二次排序梯嗽、全排序齿尽、部分排序發(fā)生在map階段。

(2)輔助排序發(fā)生在Reduce階段灯节。

23. 請描述MapReduce中Shuffle階段的工作流程循头,如何優(yōu)化Shuffle階段绵估?

分區(qū),排序卡骂,溢寫国裳,拷貝到對應(yīng)Reduce機器上,增加Combiner全跨,壓縮溢寫的文件缝左。

image.png
image.png

24. 請描述mapReduce中combiner的作用是什么,一般使用情景浓若,哪些情況不需要渺杉,及和reduce的區(qū)別?

1)Combiner的意義就是對每一個maptask的輸出進行局部匯總挪钓,以減小網(wǎng)絡(luò)傳輸量是越。

2)Combiner能夠應(yīng)用的前提是不能影響最終的業(yè)務(wù)邏輯,而且碌上,Combiner的輸出kv應(yīng)該跟reducer的輸入kv類型要對應(yīng)起來倚评。

3)Combiner和reducer的區(qū)別在于運行的位置。

Combiner是在每一個maptask所在的節(jié)點運行绍赛;

Reducer是接收全局所有Mapper的輸出結(jié)果蔓纠。

25. Mapreduce的工作原理,請舉例子說明mapreduce是怎么運行的吗蚌?

image.png
image.png

26. 如果沒有定義partitioner腿倚,那數(shù)據(jù)在被送達reducer前是如何被分區(qū)的?

如果沒有自定義的 partitioning蚯妇,則默認的 partition 算法敷燎,即根據(jù)每一條數(shù)據(jù)的 key

的 hashcode 值摸運算(%)reduce 的數(shù)量,得到的數(shù)字就是“分區(qū)號”箩言。

27. MapReduce 怎么實現(xiàn) TopN硬贯?

可以自定義groupingcomparator,或者在map端對數(shù)據(jù)進行排序陨收,然后再reduce輸出時饭豹,控制只輸出前n個數(shù)。就達到了topn輸出的目的务漩。

28. 有可能使 Hadoop 任務(wù)輸出到多個目錄中么拄衰?如果可以,怎么做饵骨?

1)可以輸出到多個目錄中翘悉,采用自定義OutputFormat。

2)實現(xiàn)步驟:

(1)自定義outputformat居触,

(2)改寫recordwriter妖混,具體改寫輸出數(shù)據(jù)的方法write()

29. 簡述hadoop實現(xiàn)join的幾種方法及每種方法的實現(xiàn)老赤。

1)reduce side join

Map端的主要工作:為來自不同表(文件)的key/value對打標簽以區(qū)別不同來源的記錄。然后用連接字段作為key制市,其余部分和新加的標志作為value抬旺,最后進行輸出。

Reduce端的主要工作:在reduce端以連接字段作為key的分組已經(jīng)完成息堂,我們只需要在每一個分組當中將那些來源于不同文件的記錄(在map階段已經(jīng)打標志)分開嚷狞,最后進行合并就ok了。

1)map join

在map端緩存多張表荣堰,提前處理業(yè)務(wù)邏輯床未,這樣增加map端業(yè)務(wù),減少reduce端數(shù)據(jù)的壓力振坚,盡可能的減少數(shù)據(jù)傾斜薇搁。

具體辦法:采用distributedcache

(1)在mapper的setup階段,將文件讀取到緩存集合中渡八。

(2)在驅(qū)動函數(shù)中加載緩存啃洋。

job.addCacheFile(new URI("file:/e:/mapjoincache/pd.txt"));// 緩存普通文件到task運行節(jié)點

30. 請簡述hadoop怎樣實現(xiàn)二級排序。

對map端輸出的key進行排序屎鳍,實現(xiàn)的compareTo方法宏娄。在compareTo方法中排序的條件有二個。

31. ** 參考下面的MR系統(tǒng)的場景:**

--hdfs塊的大小為64MB

--輸入類型為FileInputFormat

--有三個文件的大小分別是:64KB 65MB 127MB

Hadoop框架會把這些文件拆分為多少塊逮壁?

5塊:64K孵坚,64M,1M, 64M窥淆,63M

Yarn

32. 簡述Hadoop1與Hadoop2 的架構(gòu)異同卖宠。

加入了yarn解決了資源調(diào)度的問題。

加入了對Zookeeper的支持實現(xiàn)比較可靠的高可用忧饭。

33. 為什么會產(chǎn)生Yarn,它解決了什么問題扛伍,有什么優(yōu)勢?

Yarn最主要的功能就是解決運行的用戶程序與yarn框架完全解耦词裤。

Yarn上可以運行各種類型的分布式運算程序(mapreduce只是其中的一種)刺洒,比如mapreduce、storm程序吼砂,spark程序……

34. MR作用提交全過程作媚。

image.png

35. Hadoop的調(diào)度器總結(jié)。

目前帅刊,Hadoop作業(yè)調(diào)度器主要有三種:FIFO、Capacity Scheduler和Fair Scheduler漂问。Hadoop2.7.2默認的資源調(diào)度器是Capacity Scheduler赖瞒。

image.png
image.png
image.png

36. MapReduce推測執(zhí)行算法及原理女揭。

image.png

優(yōu)化(15分)

37. Hadoop 優(yōu)化方法。

1)數(shù)據(jù)輸入小文件處理:

(1)合并小文件:對小文件進行歸檔(har)栏饮、自定義inputformat將小文件存儲成sequenceFile文件吧兔。

(2)采用ConbinFileInputFormat來作為輸入,解決輸入端大量小文件場景袍嬉。

(3)對于大量小文件Job境蔼,可以開啟JVM重用。

2)map階段

(1)增大環(huán)形緩沖區(qū)大小伺通。由100m擴大到200m

(2)增大環(huán)形緩沖區(qū)溢寫的比例箍土。由80%擴大到90%

(3)減少對溢寫文件的merge次數(shù)。

(4)不影響實際業(yè)務(wù)的前提下罐监,采用combiner提前合并吴藻,減少 I/O。

3)reduce階段

(1)合理設(shè)置map和reduce數(shù):兩個都不能設(shè)置太少弓柱,也不能設(shè)置太多沟堡。太少,會導致task等待矢空,延長處理時間航罗;太多,會導致 map屁药、reduce任務(wù)間競爭資源粥血,造成處理超時等錯誤。

(2)設(shè)置map者祖、reduce共存:調(diào)整slowstart.completedmaps參數(shù)立莉,使map運行到一定程度后,reduce也開始運行七问,減少reduce的等待時間蜓耻。

(3)規(guī)避使用reduce,因為Reduce在用于連接數(shù)據(jù)集的時候?qū)a(chǎn)生大量的網(wǎng)絡(luò)消耗械巡。

(4)增加每個reduce去map中拿數(shù)據(jù)的并行數(shù)

(5)集群性能可以的前提下刹淌,增大reduce端存儲數(shù)據(jù)內(nèi)存的大小。

4)IO傳輸

(1)采用數(shù)據(jù)壓縮的方式讥耗,減少網(wǎng)絡(luò)IO的的時間有勾。安裝Snappy和LZOP壓縮編碼器。

(2)使用SequenceFile二進制文件

5)整體

(1)MapTask默認內(nèi)存大小為1G古程,可以增加MapTask內(nèi)存大小為4-5g

(2)ReduceTask默認內(nèi)存大小為1G蔼卡,可以增加ReduceTask內(nèi)存大小為4-5g

(3)可以增加MapTask的cpu核數(shù),增加ReduceTask的cpu核數(shù)

(4)增加每個container的cpu核數(shù)和內(nèi)存大小

(5)調(diào)整每個Map Task和Reduce Task最大重試次數(shù)

HA高可用

38. 如何配置hadoop高可用HA挣磨?

安裝zookeeper雇逞,修改conf下相關(guān)配置文件

安裝hadoop 荤懂,修改 /etc/profile ,修改配置文件hadoo-env.sh塘砸、修改core-site.xml节仿、修改hdfs-site.xml、修改mapred-site.xml掉蔬、修改yarn-site.xml

修改slaves 廊宪、免密配置 、hadoop拷貝女轿、啟動zk箭启、格式化hdfs,啟動其他服務(wù)

Zookeeper

39. Zookeeper選舉機制

半數(shù)機制(Paxos 協(xié)議):集群中半數(shù)以上機器存活谈喳,集群可用册烈。所以Zookeeper適合裝在奇數(shù)臺機器上。

當集群開啟的數(shù)量在半數(shù)以上時婿禽,就會將Leader給選出來赏僧,例如,有id為1扭倾,2淀零,3三臺機子,按順序啟動膛壹,第一臺開啟時驾中,Zookeeper的日志會報錯,因為啟動數(shù)量沒有達到集

一半:有id為1模聋,2肩民,3三臺機子,按順序啟動1.啟了兩臺链方,總共三臺)持痰,數(shù)量多于一半,然后根據(jù)ID的大小選出Leader祟蚀,則2號當選工窍;2.3號啟動時,Leader已經(jīng)存在前酿,則只能當小弟了患雏。

40. Zookeeper常用命令

ls 查看子節(jié)點
get 獲取節(jié)點信息
create 創(chuàng)建節(jié)點
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市罢维,隨后出現(xiàn)的幾起案子淹仑,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀借,死亡現(xiàn)場離奇詭異取试,居然都是意外死亡,警方通過查閱死者的電腦和手機怀吻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初婆,“玉大人蓬坡,你說我怎么就攤上這事“跖眩” “怎么了屑咳?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弊琴。 經(jīng)常有香客問我兆龙,道長,這世上最難降的妖魔是什么敲董? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任紫皇,我火速辦了婚禮,結(jié)果婚禮上腋寨,老公的妹妹穿的比我還像新娘聪铺。我一直安慰自己,他們只是感情好萄窜,可當我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布铃剔。 她就那樣靜靜地躺著,像睡著了一般查刻。 火紅的嫁衣襯著肌膚如雪键兜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天穗泵,我揣著相機與錄音普气,去河邊找鬼。 笑死火欧,一個胖子當著我的面吹牛棋电,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苇侵,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赶盔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了榆浓?” 一聲冷哼從身側(cè)響起于未,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烘浦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抖坪,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年闷叉,在試婚紗的時候發(fā)現(xiàn)自己被綠了擦俐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡握侧,死狀恐怖蚯瞧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情品擎,我是刑警寧澤埋合,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站萄传,受9級特大地震影響甚颂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秀菱,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一振诬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧答朋,春花似錦贷揽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至洪规,卻和暖如春印屁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斩例。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工雄人, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人念赶。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓础钠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叉谜。 傳聞我的和親對象是個殘疾皇子旗吁,可洞房花燭夜當晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容