基于Docker搭建Hadoop集群之升級(jí)版

摘要: kiwenlau/hadoop-cluster-docker是去年參加Docker巨好玩比賽開(kāi)發(fā)的,得了二等獎(jiǎng)并贏了一塊蘋(píng)果手表,目前這個(gè)項(xiàng)目已經(jīng)在GitHub上獲得了236個(gè)Star,DockerHub的鏡像下載次數(shù)2000+??傊?xiàng)目還算很受歡迎吧,這篇博客將介紹項(xiàng)目的升級(jí)版。

一. 項(xiàng)目介紹

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)度。

hadoop-cluster-docker.png

之前的版本使用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配置

二. 3節(jié)點(diǎn)Hadoop集群搭建步驟

1. 下載Docker鏡像
sudo docker pull kiwenlau/hadoop:1.0
2. 下載GitHub倉(cāng)庫(kù)
git clone https://github.com/kiwenlau/hadoop-cluster-docker
3. 創(chuàng)建Hadoop網(wǎng)絡(luò)
sudo docker network create --driver=bridge hadoop
4. 運(yùn)行Docker容器
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目錄
5. 啟動(dòng)hadoop
./start-hadoop.sh
6. 運(yùn)行wordcount
./run-wordcount.sh

運(yùn)行結(jié)果

input file1.txt:
Hello Hadoop
input file2.txt:
Hello Docker
wordcount output:
Docker  1
Hadoop  1
Hello   2

Hadoop網(wǎng)頁(yè)管理地址:

192.168.59.1為運(yùn)行容器的主機(jī)的IP。

三. N節(jié)點(diǎn)Hadoop集群搭建步驟

1. 準(zhǔn)備
  • 參考第二部分1~3:下載Docker鏡像,下載GitHub倉(cāng)庫(kù),以及創(chuàng)建Hadoop網(wǎng)絡(luò)
2. 重新構(gòu)建Docker鏡像
./resize-cluster.sh 5
  • 可以指定任意N(N>1)
3. 啟動(dòng)Docker容器
./start-container.sh 5
  • 與第2步中的N保持一致。
4. 運(yùn)行Hadoop
  • 參考第二部分5~6:?jiǎn)?dòng)Hadoop,并運(yùn)行wordcount。

參考

  1. 基于Docker搭建多節(jié)點(diǎn)Hadoop集群
  2. How to Install Hadoop on Ubuntu 13.10

版權(quán)聲明
轉(zhuǎn)載時(shí)請(qǐng)注明作者KiwenLau以及本文地址:
http://kiwenlau.com/2016/06/12/160612-hadoop-cluster-docker-update/


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容