欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:【大數(shù)據(jù)】深入了解Hadoop

柚子快報(bào)邀請(qǐng)碼778899分享:【大數(shù)據(jù)】深入了解Hadoop

http://yzkb.51969.com/

文章目錄

一、Hadoop1.1、Hadoop發(fā)展1.2、Hadoop特性1.3、Hadoop三大組件

二、Hadoop---HDFS(分布式文件存儲(chǔ)系統(tǒng))2.1、hdfs服務(wù)的構(gòu)成2.2、HDFS的Shell操作2.3、**`HDFS讀寫流程`**2.4、三副本機(jī)制2.5、元數(shù)據(jù)介紹2.6、HDFS的歸檔2.7、HDFS垃圾桶機(jī)制2.8、HDFS安全機(jī)制

三、Hadoop---MapReduce(分布式計(jì)算引擎)3.1、MapReudce簡(jiǎn)單使用3.2、**`MapReduce 計(jì)算流程`**3.3、MapReduce計(jì)算歷史服務(wù)

四、Hadoop---Yarn(資源調(diào)度系統(tǒng))4.1、Yarn服務(wù)的構(gòu)成4.2、Yarn的資源調(diào)度流程4.3、Yarn資源調(diào)度方案

五、Hadoop集群搭建5.1、搭建步驟5.2、高可用搭建步驟

一、Hadoop

狹義上: 分布式數(shù)據(jù)管理(存儲(chǔ),計(jì)算)的系統(tǒng)服務(wù) 廣義上: 大數(shù)據(jù)開發(fā)的一個(gè)生態(tài)系統(tǒng),很多大數(shù)據(jù)開發(fā)的工具都可以接入到hadoop中 如 zk可以配合Hadoop一起實(shí)現(xiàn)高可用

1.1、Hadoop發(fā)展

Hadoop屬于Apache基金會(huì)的開源項(xiàng)目,下載源碼使用 是搜索引擎公司開發(fā)的,Hadoop的實(shí)現(xiàn)原理參考谷歌的兩篇論文, GFS論文,開發(fā)了hdfs 負(fù)責(zé)存儲(chǔ) Mapreduce論文,開發(fā)了mapreduce 負(fù)責(zé)計(jì)算

1.2、Hadoop特性

擴(kuò)容能力(Scalable):Hadoop是在可用的計(jì)算機(jī)集群間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集群可以方便的擴(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。成本低(Economical):Hadoop通過(guò)普通廉價(jià)的機(jī)器組成服務(wù)器集群來(lái)分發(fā)以及處理數(shù)據(jù),以至于成本很低。高效率(Efficient):通過(guò)并發(fā)數(shù)據(jù),Hadoop可以在節(jié)點(diǎn)之間動(dòng)態(tài)并行的移動(dòng)數(shù)據(jù),使得速度非??臁?煽啃裕≧ellable):能自動(dòng)維護(hù)數(shù)據(jù)的多份復(fù)制,并且在任務(wù)失敗后能自動(dòng)地重新部署(redeploy)計(jì)算任務(wù)。所以Hadoop的按位存儲(chǔ)和處理數(shù)據(jù)的能力值得信賴。

1.3、Hadoop三大組件

HDFS 負(fù)責(zé)數(shù)據(jù)存儲(chǔ)服務(wù)MapReduce 負(fù)責(zé)數(shù)據(jù)計(jì)算Yarn 負(fù)責(zé)計(jì)算資源的調(diào)度 hadoop2.0 之后的版本引入

二、Hadoop—HDFS(分布式文件存儲(chǔ)系統(tǒng))

負(fù)責(zé)大數(shù)據(jù)的數(shù)據(jù)儲(chǔ)存功能

對(duì)海量數(shù)采用文件的方式進(jìn)行存儲(chǔ),同一個(gè)文件的數(shù)據(jù)可能會(huì)存儲(chǔ)在不同的服務(wù)器實(shí)現(xiàn)分布式存儲(chǔ)

2.1、hdfs服務(wù)的構(gòu)成

namenode服務(wù) 管理hdfs的主服務(wù)

所有的數(shù)據(jù)的讀寫請(qǐng)求都要交給namenode處理由namenode負(fù)責(zé)將數(shù)據(jù)進(jìn)行分配存在不同的datanode上namenode主服務(wù)只會(huì)有一個(gè),一旦namenode服務(wù)出現(xiàn)問(wèn)題,整個(gè)hdfs服務(wù)都不可用,namenode是單點(diǎn)故障 datanode服務(wù) 負(fù)責(zé)存儲(chǔ)數(shù)據(jù)

和namenode保持通訊,將自身信息告知namenode數(shù)據(jù)存儲(chǔ)時(shí),是按照塊(block)進(jìn)行存儲(chǔ),默認(rèn)塊大小 128M

當(dāng)數(shù)據(jù)大小不夠128M時(shí),按照數(shù)據(jù)大小存儲(chǔ)數(shù)據(jù)到磁盤上 為了保證數(shù)據(jù)安全可靠,會(huì)對(duì)數(shù)據(jù)進(jìn)行副本備份, 默認(rèn)是3副本,每塊數(shù)據(jù)會(huì)存儲(chǔ)3份,三份數(shù)據(jù)會(huì)存儲(chǔ)在不同服務(wù)器 SecondaryNameNode 負(fù)責(zé)協(xié)助namenode完成對(duì)元數(shù)據(jù)的存儲(chǔ)

元數(shù)據(jù)是文件的信息(名字,大小,存儲(chǔ)位置),datanode信息,塊信息在hdfs運(yùn)行期間,元數(shù)據(jù)是在內(nèi)存上存儲(chǔ)的,內(nèi)存存儲(chǔ)數(shù)據(jù)是臨時(shí)存儲(chǔ),一點(diǎn)斷電或服務(wù)不可用宕機(jī)會(huì)造成內(nèi)存數(shù)據(jù)丟失,hdfs為了避免數(shù)據(jù)丟失,會(huì)將元數(shù)據(jù)在磁盤上進(jìn)行存儲(chǔ)SecondaryNameNode 協(xié)助namenode將元數(shù)據(jù)存在磁盤上如果namenode完成磁盤存儲(chǔ)數(shù)據(jù),需要耗費(fèi)大量時(shí)間,此時(shí)無(wú)法處理其他請(qǐng)求,所以元數(shù)據(jù)的磁盤存儲(chǔ)交給SecondaryNameNode 實(shí)現(xiàn)

2.2、HDFS的Shell操作

在hadoop的2.x版本中沒(méi)有web頁(yè)面的操作選項(xiàng),只能通過(guò)shell方式操作

hdfs dfs 參數(shù)

hdfs dfs -mkdir /hdfs_data

hdfs dfs -touch /hdfs_data/a.txt

hdfs dfs -rm -r /hdfs_data

hdfs dfs -cp /hdfs_data/a.txt /data

hdfs dfs -mv /data/畫圖.pptx /hdfs_data

hdfs dfs -mv /hdfs_data/畫圖.pptx /hdfs_data/a.pptx

hdfs dfs -cat /hdfs_data/a.txt

hdfs dfs -ls /

hdfs的文件上傳下載

hdfs dfs -get hdfs上的文件路徑 本地的文件路徑(本地指操作的當(dāng)前服務(wù)器)

hdfs dfs -put 本地的文件路徑(本地指操作的當(dāng)前服務(wù)器) hdfs上的目錄路徑

2.3、HDFS讀寫流程

讀流程

客戶端向filesystem請(qǐng)求獲取文件數(shù)據(jù), filesystem請(qǐng)求NN檢查文件, NN獲取元數(shù)據(jù)進(jìn)行檢查并返回檢查結(jié)果給filesystem,filesystem返回給客戶端,客戶端請(qǐng)求調(diào)用讀取數(shù)據(jù)方法fsDataReadStream, fsDataReadStream請(qǐng)求NN獲取數(shù)據(jù)所在位置,NN返回?cái)?shù)據(jù)所在位置(按照塊存儲(chǔ)順序返回所有塊的DN數(shù)據(jù)),然后按照packet大小讀取數(shù)據(jù),存儲(chǔ)在內(nèi)存上,數(shù)據(jù)讀取完成后寫入文件 當(dāng)讀取某個(gè)DN不可用時(shí),會(huì)匯報(bào)給NN

寫流程

1.客戶端通過(guò)DistributedFileSystem模塊向NN請(qǐng)求上傳文件,NN檢查目標(biāo)文件是否已存在,父目錄是否存在并返回檢查結(jié)果 2. 客戶端向NN請(qǐng)求第一個(gè)Block上傳到哪幾個(gè)DN服務(wù)器上 3. NN返回3個(gè)DN節(jié)點(diǎn),分別為DN1,DN2,DN3 4. 客戶端通過(guò)FSDataWriteStream模塊請(qǐng)求NN獲取要存儲(chǔ)數(shù)據(jù)的DN并向DN1上傳數(shù)據(jù),DN1收到請(qǐng)求會(huì)繼續(xù)調(diào)用DN2,然后DN2調(diào)用DN3,將這個(gè)通信管道建立完成 5. DN1,DN2,DN3逐級(jí)應(yīng)答客戶端 6. 客戶端開始往 DN1 上傳第一個(gè) Block (默認(rèn)128M)(先從磁盤讀取數(shù)據(jù)放到一個(gè)本地內(nèi)存緩存),以 Packet(64KB) 為單位,DN1 收到一個(gè) Packet 就會(huì)傳給 DN2,DN2傳給 DN3;DN1每傳一個(gè) packet 會(huì)放入一個(gè)應(yīng)答隊(duì)列等待應(yīng)答。 7. 當(dāng)一個(gè) Block 傳輸完成之后,客戶端再次請(qǐng)求 NameNode 上傳第二個(gè) Block 的服務(wù)器。(重復(fù)執(zhí)行3-7步)

2.4、三副本機(jī)制

保證每個(gè)塊在不同的服務(wù)器不同機(jī)架上

服務(wù)器數(shù)量低于副本數(shù)量,存儲(chǔ)數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò)

1-第一個(gè)副本,由NN決定找哪個(gè)DN

2-第二個(gè)副本,有NN找第一個(gè)副本所在機(jī)架的不同服務(wù)器上

3-第三個(gè)副本,找和第一個(gè)副本不同機(jī)架的服務(wù)器上

2.5、元數(shù)據(jù)介紹

hdfs的元數(shù)據(jù)兩個(gè)部分

內(nèi)存上的元數(shù)據(jù)

在服務(wù)運(yùn)行期間,所有的元數(shù)據(jù)會(huì)先存儲(chǔ)在內(nèi)存上文件信息,datanode信息,塊信息 元數(shù)據(jù)文件

為了避免內(nèi)存上的元數(shù)據(jù)丟失,會(huì)將內(nèi)存的上的元數(shù)據(jù)保存在磁盤上secondarynamenode完成元數(shù)據(jù)文件的保存存儲(chǔ)位置在hadoop的指定數(shù)據(jù)

/export/data/hadoop-3.3.0/dfs/name/current edits_xxxxx 編輯日志文件,記錄所有的文件操作信息 hdfs oev -i edits_0000000000000010086-0000000000000010100 -o edits.xml

fsimage_xxxxx 鏡像文件,保存了元數(shù)據(jù)內(nèi)容 文件和塊內(nèi)容

datanode會(huì)匯報(bào)自身狀態(tài)給NameNode,默認(rèn)是3秒

hdfs oiv -i fsimage_0000000000000010119 -p XML -o fsimage.xml

元數(shù)據(jù)備份流程

客戶端發(fā)送文件操作請(qǐng)求給NN,NN將新的元數(shù)據(jù)同步到內(nèi)存中并同時(shí)操作信息記錄在edits文件中,如果edits存儲(chǔ)1M會(huì)產(chǎn)生新的文件 SNN向NN發(fā)送checkpoint請(qǐng)求,時(shí)間間隔是一小時(shí),當(dāng)發(fā)生checkpoint時(shí)會(huì)創(chuàng)建新的edits文件,checkpoint后的請(qǐng)求操作信息會(huì)被記錄在新的edits中,SNN執(zhí)行edits文件中的操作,操作后的數(shù)據(jù)加載內(nèi)存中,將元數(shù)據(jù)保存在fsimage中,將fsimage文件傳遞給NN并修改文件名

元數(shù)據(jù)保存文件的條件

1-時(shí)間間隔達(dá)到1小時(shí) 2-文件操作次數(shù)達(dá)到100萬(wàn)次 兩個(gè)條件只要滿足一個(gè)就是執(zhí)行checkpoint進(jìn)行元數(shù)據(jù)文件保存

# Checkpoint操作受兩個(gè)參數(shù)控制,可以通過(guò)hdfs-site.xml進(jìn)行配置:

dfs.namenode.checkpoint.period

3600

# 兩次連續(xù)的checkpoint之間的時(shí)間間隔。默認(rèn)1小時(shí)

dfs.namenode.checkpoint.txns

1000000

# 最大的沒(méi)有執(zhí)行checkpoint事務(wù)的數(shù)量,滿足將強(qiáng)制執(zhí)行緊急checkpoint,即使尚未達(dá)到檢查點(diǎn)周期。默認(rèn)設(shè)置為100萬(wàn)。

2.6、HDFS的歸檔

主要解決內(nèi)存元數(shù)據(jù)數(shù)據(jù)量過(guò)大 文件數(shù)據(jù)量非常多時(shí),內(nèi)存上或存儲(chǔ)大量的文件元數(shù)據(jù),此時(shí)內(nèi)存占用資源比較大,可以對(duì)文件進(jìn)行歸檔,類似對(duì)文件進(jìn)行打包合成一個(gè)打包文件 一般歸檔是針對(duì)大量小文件

文件歸檔

hadoop archive -archiveName data.har -p /data /hdfs_data

歸檔的查看

hdfs dfs -ls har:///hdfs_data/data.har

歸檔解壓

hdfs dfs -cp har:///hdfs_data/data.har/a.txt /hdfs_data

歸檔注意點(diǎn) 歸檔后并不會(huì)刪除原有數(shù)據(jù) 原有數(shù)據(jù)依然會(huì)占用內(nèi)存空間 要節(jié)省內(nèi)存空就需要?jiǎng)h除原有文件

2.7、HDFS垃圾桶機(jī)制

刪除hdfs文件時(shí),可以將文件臨時(shí)存在垃圾桶中,存儲(chǔ)時(shí)間可以進(jìn)行設(shè)置 可以core-site.xml中設(shè)置 時(shí)間單位是分鐘

fs.trash.interval

1440

[root@node1 hadoop] hdfs dfs -rm /hdfs_data/a.txt

2023-06-18 18:01:34,332 INFO fs.TrashPolicyDefault: Moved: 'hdfs://node1:8020/hdfs_data/a.txt' to trash at: hdfs://node1:8020/user/root/.Trash/Current/hdfs_data/a.txt

[root@node1 hadoop] hdfs dfs -rm -skipTrash /hdfs_data/a.pptx

Deleted /hdfs_data/a.pptx

2.8、HDFS安全機(jī)制

保證文件操作的安全性 在hdfs啟動(dòng)時(shí),會(huì)進(jìn)行安全機(jī)制檢查,檢查塊信息和datanode信息 檢查通過(guò)了,可以進(jìn)行文件的增刪改查操作 檢查未通過(guò) 只能讀取文件,不能進(jìn)行文件的寫入修改刪除操作

安全機(jī)制檢查的內(nèi)容

1-保證每個(gè)塊至少有一個(gè)副本,沒(méi)有出現(xiàn)塊的丟失 2-保證數(shù)據(jù)塊占整個(gè)塊的比例不能低于0.999f,不能低于99.999% 3-保證至少有0個(gè)datanode運(yùn)行 4-滿足以上3個(gè)條件之后等待30秒退出安全模式

shell操作

查看 hdfs dfsadmin -safemode get

啟動(dòng) hdfs dfsadmin -safemode enter

關(guān)閉 hdfs dfsadmin -safemode leave

hdfs dfsadmin -safemode forceExit

三、Hadoop—MapReduce(分布式計(jì)算引擎)

MapReduce 是hadoop負(fù)責(zé)計(jì)算的服務(wù)功能,采用的計(jì)算方式是分布式計(jì)算,就算思想’分而治之’

傳統(tǒng)計(jì)算方式是移動(dòng)數(shù)據(jù)計(jì)算 分布式計(jì)算,移動(dòng)計(jì)算到數(shù)據(jù)所在位置進(jìn)行計(jì)算

3.1、MapReudce簡(jiǎn)單使用

hadoop提供測(cè)試代碼 /export/server/hadoop/share/hadoop/mapreduce

hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 5 100

詞頻統(tǒng)計(jì)

hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output

3.2、MapReduce 計(jì)算流程

Map過(guò)程:(Map數(shù)量由塊決定) a. 通過(guò)split切割讀取文件中的每行數(shù)據(jù) b. 將每行需要計(jì)算的數(shù)據(jù)轉(zhuǎn)為kv結(jié)構(gòu) c. 將kv數(shù)據(jù)寫入環(huán)形緩沖區(qū),默認(rèn)大小100M,當(dāng)達(dá)到80%開始spill溢出寫入文件進(jìn)行shuffle操作shuffle過(guò)程: a. 分區(qū):partition ⅰ. 將Map處理后的數(shù)據(jù)分成多份:

采用hash取余的方式進(jìn)行分區(qū)采用hash(key)%分區(qū)數(shù)(reduce個(gè)數(shù)) --余數(shù)相同的數(shù)據(jù)放同一分區(qū)分區(qū)數(shù)由reduce個(gè)數(shù)決定 b. 排序:sort ⅰ. 會(huì)對(duì)相同分區(qū)后的數(shù)據(jù)進(jìn)行排序–排序的分區(qū)數(shù)據(jù)會(huì)寫入文件 c. 合并:merge ⅰ. 將相同分區(qū)的小文件數(shù)據(jù)合并成大文件(合并后的數(shù)據(jù)會(huì)排序,最終保證數(shù)據(jù)有序) Reduce過(guò)程:(Reduce數(shù)量由開發(fā)人員決定) a. 先通過(guò)fetch拉取合并后的文件數(shù)據(jù),將數(shù)據(jù)加載到內(nèi)存,然后將拉取后的數(shù)據(jù)進(jìn)行排序 b. 堆排序后的數(shù)據(jù)聚合計(jì)算 c. 不同分區(qū)的數(shù)據(jù)會(huì)有對(duì)應(yīng)的reduce進(jìn)行拉取

3.3、MapReduce計(jì)算歷史服務(wù)

需要對(duì)歷史日志服務(wù)進(jìn)行配置 啟動(dòng)歷史日志服務(wù)

mapred --daemon start historyserver

hadoop服務(wù)運(yùn)行錯(cuò)誤查看的日志文件

四、Hadoop—Yarn(資源調(diào)度系統(tǒng))

Yarn是hadoop中負(fù)責(zé)資源調(diào)度的服務(wù)功能,mapreduce計(jì)算時(shí)使用的資源都需要找yarn申請(qǐng),申請(qǐng)成功后才能進(jìn)行計(jì)算。

yarn是hadoop2.x版本之后引入的服務(wù),在之前計(jì)算實(shí)時(shí)都是使用各自服務(wù)器上的資源,有了yarn可以協(xié)調(diào)分配多臺(tái)服務(wù)器的資源。

4.1、Yarn服務(wù)的構(gòu)成

ResourceManager 簡(jiǎn)寫RM

管理整個(gè)yarn服務(wù)處理所有的計(jì)算任務(wù)資源申請(qǐng)請(qǐng)求單點(diǎn)故障,出現(xiàn)問(wèn)題后整個(gè)yarn都不可用計(jì)算時(shí)會(huì)指定創(chuàng)建applicationmaster服務(wù)不參與具體計(jì)算的資源分配 NodeManager 簡(jiǎn)寫NM

監(jiān)控每臺(tái)服務(wù)器的資源情況,匯報(bào)給RM創(chuàng)建container資源空間給計(jì)算任務(wù)使用 ApplicationMaster

只有在進(jìn)行計(jì)算時(shí)會(huì)由RM創(chuàng)建負(fù)責(zé)整個(gè)計(jì)算任務(wù)的管理(具體資源的分配),也就是管Map和Reduce計(jì)算Map和Reduce在計(jì)算時(shí)的信息會(huì)匯報(bào)給ApplicationMaster計(jì)算完成,會(huì)由RM釋放

4.2、Yarn的資源調(diào)度流程

1.客戶端提交計(jì)算任務(wù)給RM 2. RM找到NM創(chuàng)建ApplicantionMaster 3. ApplicationMater和RM保持通訊并申請(qǐng)計(jì)算資源 4.申請(qǐng)成功,RM返回資源充足的NM信息,App通知對(duì)應(yīng)的NM創(chuàng)建container資源空間 5.在對(duì)應(yīng)的資源空間上運(yùn)行MapTask,讀取block數(shù)據(jù)轉(zhuǎn)為kv(mr計(jì)算時(shí)有一個(gè)combine機(jī)制在map端進(jìn)行聚合計(jì)算) 6.map通過(guò)shuffle將數(shù)據(jù)傳遞給reduce計(jì)算 7.計(jì)算完成后釋放所有計(jì)算資源

4.3、Yarn資源調(diào)度方案

當(dāng)有多個(gè)計(jì)算任務(wù)提交時(shí),資源分配給哪個(gè)計(jì)算任務(wù)使用? 此時(shí)需要指定資源調(diào)度策略 1-先進(jìn)先出(FIFO) 誰(shuí)先申請(qǐng)先給誰(shuí)分配 2-容量調(diào)度(Capacity) 將資源劃分多份,交給多個(gè)任務(wù)分開使用 默認(rèn)采用 3-公平調(diào)度 (Fair) 計(jì)算任務(wù)部分完成后,釋放資源給其他任務(wù)使用 map計(jì)算完成后就可以釋放資源不必等所有計(jì)算完成再釋放 在yarn-site.xml文件下可以設(shè)置調(diào)度側(cè)率

# 容量調(diào)度 默認(rèn)

yarn.resourcemanager.scheduler.class= org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

# 公平調(diào)度

yarn.resourcemanager.scheduler.class=org.apache.hadoop.yarn.server.resourcemanager.reservation.FairSchedulerPlanFollower

當(dāng)采用容量調(diào)度時(shí)需要單獨(dú)對(duì)分配的容量進(jìn)行指定 在hadoop的配置文件目錄下指定capacity-scheduler.xml文件

yarn.scheduler.capacity.root.queues

prod,dev # 將資源分成兩份一個(gè)叫prod一個(gè)dev

yarn.scheduler.capacity.root.dev.queues

mapreduce,spark # 將dev分成兩份 一個(gè)叫mapreduce一個(gè)spark

yarn.scheduler.capacity.root.prod.capacity

40 # 分配prod資源空間占比為40%

yarn.scheduler.capacity.root.dev.capacity

60 # 分配dev資源空間占比為60%

yarn.scheduler.capacity.root.dev.maximum-capacity

75 # 動(dòng)態(tài)調(diào)整dev的大小 最大為75%

yarn.scheduler.capacity.root.dev.mapreduce.capacity

50 # 指定dev下的mapreduce 占用dev的空間的50%

yarn.scheduler.capacity.root.dev.spark.capacity

50 # 指定dev下的spark 占用dev的空間的50%

在使用時(shí)可以在代碼中指定采用哪個(gè)資源,指定資源名稱 root.dev.mapreduce

五、Hadoop集群搭建

Hadoop部署方式分三種: Standalone mode(獨(dú)立模式)、 Pseudo-Distributed mode(偽分布式模式)、 Cluster mode(集群模式) 其中前兩種都是在單機(jī)部署。 獨(dú)立模式又稱為單機(jī)模式,僅1個(gè)機(jī)器運(yùn)行1個(gè)java進(jìn)程,主要用于調(diào)試。 偽分布模式也是在1個(gè)機(jī)器上運(yùn)行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分別啟動(dòng)單獨(dú)的java進(jìn)程,主要用于調(diào)試。 集群模式主要用于生產(chǎn)環(huán)境部署。會(huì)使用N臺(tái)主機(jī)組成一個(gè)Hadoop集群。這種部署模式下,主節(jié)點(diǎn)和從節(jié)點(diǎn)會(huì)分開部署在不同的機(jī)器上。

5.1、搭建步驟

1.上傳hadoop壓縮包(hadoop-3.3.0-Centos7-64-with-snappy.tar.gz)解壓,注意:上傳文件位置為 /export/server目錄

cd /export/server

tar zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

2.配置環(huán)境變量

echo 'export HADOOP_HOME=/export/server/hadoop-3.3.0' >> /etc/profile

echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile

source /etc/profile

3.手動(dòng)修改配置文件(3和4二選一)

進(jìn)入/export/server/hadoop-3.3.0/etc/hadoop目錄下進(jìn)行修改

① hadoop-env.sh文件

export JAVA_HOME=/export/server/jdk

#文件最后添加

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

② core-site.xml文件

fs.defaultFS

hdfs://node1:8020

hadoop.tmp.dir

/export/data/hadoop-3.3.0

hadoop.http.staticuser.user

root

hadoop.proxyuser.root.hosts

*

hadoop.proxyuser.root.groups

*

③ hdfs-site.xml文件

dfs.namenode.secondary.http-address

node2:9868

④ mapred-site.xml文件

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

node1:10020

mapreduce.jobhistory.webapp.address

node1:19888

yarn.app.mapreduce.am.env

HADOOP_MAPRED_HOME=${HADOOP_HOME}

mapreduce.map.env

HADOOP_MAPRED_HOME=${HADOOP_HOME}

mapreduce.reduce.env

HADOOP_MAPRED_HOME=${HADOOP_HOME}

⑤ yarn-site.xml文件

yarn.resourcemanager.hostname

node1

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.nodemanager.pmem-check-enabled

false

yarn.nodemanager.vmem-check-enabled

false

yarn.log-aggregation-enable

true

yarn.log.server.url

http://node1:19888/jobhistory/logs

yarn.log-aggregation.retain-seconds

604800

⑥ workers文件

node1

node2

node3

4.使用配置文件替換(3和4二選一)

上傳配置文件壓縮包(hadoop-config.tar)解壓,注意:上傳文件位置為 /export/server目錄

tar xvf /export/server/hadoop-config.tar

mv -f /export/server/hadoop-config/* /export/server/hadoop-3.3.0/etc/hadoop/

rm /export/server/hadoop-config* -rf

5.集群搭建說(shuō)明

需要將node1中的Hadoop文件復(fù)制到node2和node3的對(duì)應(yīng)位置

scp可以進(jìn)行主機(jī)的文件復(fù)制拷貝

scp -r /export/server/hadoop-3.3.0 root@node2:/export/server/

6.hadoop集群?jiǎn)?dòng) ① 數(shù)據(jù)初始化

注意: 初始化操作必須在node1中執(zhí)行

hdfs namenode -format

② 腳本啟動(dòng)和關(guān)閉

start-all.sh

stop-all.sh

http://192.168.88.100:9870 問(wèn)題: 無(wú)法在HDFS上傳文件,原因是本地windows下沒(méi)有進(jìn)行IP地址的域名解析 解決:windows下進(jìn)入C:\Windows\System32\drivers\etc 192.168.88.100 node1.jinking.cn node1 192.168.88.101 node2.jinking.cn node2 192.168.88.102 node3.jinking.cn node3

5.2、高可用搭建步驟

主要解決服務(wù)的單點(diǎn)故障問(wèn)題,提高服務(wù)的使用效率 使用zk實(shí)現(xiàn)多服務(wù)狀態(tài)管理,選舉產(chǎn)生主備

安裝軟件

三臺(tái)服務(wù)器都要安裝

yum install psmisc -y # 實(shí)現(xiàn)多個(gè)服務(wù)的通訊 zkfc和nn及zk的通訊

rpm -ivh psmisc-22.20-17.el7.x86_64.rpm

備份hadoop安裝信息

tar cvf hadoop.tar /export/server/hadoop-3.3.0

刪除原有數(shù)據(jù)文件 三臺(tái)服務(wù)器都操作

rm -rf /export/data/hadoop-3.3.0

修改配置文件 以下配置現(xiàn)在node1上執(zhí)行

修改hadoop-env.sh

# 在文件最后添加下面兩行

export HDFS_JOURNALNODE_USER=root

export HDFS_ZKFC_USER=root

修改core-site.xml

fs.defaultFS

hdfs://cluster1

hadoop.tmp.dir

/export/data/ha-hadoop

ha.zookeeper.quorum

node1:2181,node2:2181,node3:2181

修改hdfs-site.xml

dfs.nameservices

cluster1

dfs.ha.namenodes.cluster1

nn1,nn2

dfs.namenode.rpc-address.cluster1.nn1

node1:8020

dfs.namenode.http-address.cluster1.nn1

node1:50070

dfs.namenode.rpc-address.cluster1.nn2

node2:8020

dfs.namenode.http-address.cluster1.nn2

node2:50070

dfs.namenode.shared.edits.dir

qjournal://node1:8485;node2:8485;node3:8485/cluster1

dfs.journalnode.edits.dir

/export/data/journaldata

dfs.ha.automatic-failover.enabled

true

dfs.client.failover.proxy.provider.cluster1

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

dfs.ha.fencing.methods

sshfence

dfs.ha.fencing.ssh.private-key-files

/root/.ssh/id_rsa

dfs.ha.fencing.ssh.connect-timeout

30000

修改yarn-site.xml

yarn.resourcemanager.ha.enabled

true

yarn.resourcemanager.cluster-id

yrc

yarn.resourcemanager.ha.rm-ids

rm1,rm2

yarn.resourcemanager.hostname.rm1

node1

yarn.resourcemanager.hostname.rm2

node2

yarn.resourcemanager.zk-address

node1:2181,node2:2181,node3:2181

yarn.nodemanager.aux-services

mapreduce_shuffle

注意: 將hadoop配置信息拷貝到node2和node3 注意: 將hadoop配置信息拷貝到node2和node3 注意: 將hadoop配置信息拷貝到node2和node3

5.啟動(dòng)

啟動(dòng)zk

zkServer.sh start 啟動(dòng)journalnode 三臺(tái)服務(wù)器都啟動(dòng)

hadoop-daemon.sh start journalnode 初始化namenode 注意:node1上執(zhí)行

hdfs namenode -format將數(shù)據(jù)文件拷貝到node2相同目錄

scp -r ha-hadoop/ node2:/export/data/ 初始化zkfc 注意在node1上執(zhí)行

hdfs zkfc -formatZK 啟動(dòng)服務(wù)

start-all.sh

注意

搭建高可用后,之前的SNN會(huì)被QJM取代

柚子快報(bào)邀請(qǐng)碼778899分享:【大數(shù)據(jù)】深入了解Hadoop

http://yzkb.51969.com/

參考鏈接

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19523729.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄