這篇文章主要介紹“怎么在Docker搭建Hadoop集群”,在日常操作中,相信很多人在怎么在Docker搭建Hadoop集群?jiǎn)栴}上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么在Docker搭建Hadoop集群”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供石棉網(wǎng)站建設(shè)、石棉做網(wǎng)站、石棉網(wǎng)站設(shè)計(jì)、石棉網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、石棉企業(yè)網(wǎng)站模板建站服務(wù),十年石棉做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
將Hadoop打包到Docker鏡像中,就可以快速地在單個(gè)機(jī)器上搭建Hadoop集群,這樣可以方便新手測(cè)試和學(xué)習(xí)。
如下圖所示,Hadoop的master和slave分別運(yùn)行在不同的Docker容器中,其中hadoop-master容器中運(yùn)行NameNode和ResourceManager,hadoop-slave容器中運(yùn)行DataNode和NodeManager。NameNode和DataNode是Hadoop分布式文件系統(tǒng)HDFS的組件,負(fù)責(zé)儲(chǔ)存輸入以及輸出數(shù)據(jù),而ResourceManager和NodeManager是Hadoop集群資源管理系統(tǒng)YARN的組件,負(fù)責(zé)CPU和內(nèi)存資源的調(diào)度。
之前的版本使用serf/DNSmasq為Hadoop集群提供DNS服務(wù),由于Docker網(wǎng)絡(luò)功能更新,現(xiàn)在并不需要了。更新的版本中,使用以下命令為Hadoop集群創(chuàng)建單獨(dú)的網(wǎng)絡(luò):
sudo docker network create --driver=bridge hadoop |
然后在運(yùn)行Hadoop容器時(shí),使用”–net=hadoop”選項(xiàng),這時(shí)所有容器將運(yùn)行在hadoop網(wǎng)絡(luò)中,它們可以通過(guò)容器名稱進(jìn)行通信。
項(xiàng)目更新要點(diǎn):
去除serf/dnsmasq
合并Master和Slave鏡像
使用kiwenlau/compile-hadoop項(xiàng)目編譯的Hadoo進(jìn)行安裝
優(yōu)化Hadoop配置
sudo docker pull kiwenlau/hadoop:1.0 |
git clone https://github.com/kiwenlau/hadoop-cluster-docker |
sudo docker network create --driver=bridge hadoop |
cd hadoop-cluster-docker./start-container.sh |
運(yùn)行結(jié)果
start hadoop-master container...start hadoop-slave1 container...start hadoop-slave2 container...root@hadoop-master:~# |
啟動(dòng)了3個(gè)容器,1個(gè)master, 2個(gè)slave
運(yùn)行后就進(jìn)入了hadoop-master容器的/root目錄
./start-hadoop.sh |
./run-wordcount.sh |
運(yùn)行結(jié)果
input file1.txt:Hello Hadoopinput file2.txt:Hello Dockerwordcount output:Docker 1Hadoop 1Hello 2 |
Hadoop網(wǎng)頁(yè)管理地址:
NameNode: http://192.168.59.1:50070/
ResourceManager: http://192.168.59.1:8088/
192.168.59.1為運(yùn)行容器的主機(jī)的IP。
參考第二部分1~3:下載Docker鏡像,下載GitHub倉(cāng)庫(kù),以及創(chuàng)建Hadoop網(wǎng)絡(luò)
./resize-cluster.sh 5 |
可以指定任意N(N>1)
./start-container.sh 5 |
與第2步中的N保持一致。
參考第二部分5~6:?jiǎn)?dòng)Hadoop,并運(yùn)行wordcount。
到此,關(guān)于“怎么在Docker搭建Hadoop集群”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!