使用docker部署hadoop集群
0. 寫在前面
網(wǎng)上也已經(jīng)有很多教程了,但是其中都有不少坑,在此記錄一下自己安裝的過程。
目標(biāo):使用docker搭建一個一主兩從三臺機器的hadoop2.7.7版本的集群
準(zhǔn)備:
首先要有一臺內(nèi)存8G以上的centos7機器,我用的是阿里云主機。
其次將jdk和hadoop包上傳到服務(wù)器中。
1. 步驟
大致分以下幾步:
安裝docker
基礎(chǔ)環(huán)境準(zhǔn)備
配置網(wǎng)絡(luò),并啟動docker容器
配置host及ssh免密登錄
安裝配置hadoop
測試使用hadoop
1.1 安裝docker
依次執(zhí)行如下步驟安裝docker。如果有docker環(huán)境的可以跳過。

1.2 基礎(chǔ)環(huán)境準(zhǔn)備
1.2.1 創(chuàng)建基礎(chǔ)的centos7鏡像
拉取官方centos7鏡像
通過build?Dockfile生成帶ssh功能的centos鏡像
創(chuàng)建Dockerfile文件
vi Dockerfile
將如下內(nèi)容寫入Dockerfile

上述內(nèi)容大概意思是:以centos鏡像為基礎(chǔ),設(shè)置密碼為wqe123,安裝ssh服務(wù)并啟動
構(gòu)建Dockerfile
docker build -t="centos7-ssh" .
將生成一個名為centos7-ssh的鏡像,可以通過docker images查看
1.2.2 生成有hadoop和jdk環(huán)境的鏡像
將準(zhǔn)備好的包放在當(dāng)前目錄下。hadoop-2.7.7.tar.gz和jdk-8u202-linux-x64.tar.gz
通過build Dockfile生成帶hadoop和jdk環(huán)境的centos鏡像
剛才已經(jīng)創(chuàng)建了一個Dockerfile了,先將他移開。mv Dockerfile Dockerfile.bak
創(chuàng)建Dockerfile
vi Dockerfile
將以下內(nèi)容寫入:

上述內(nèi)容大概意思是:以上面生成的centos7-ssh為基礎(chǔ),將hadoop和jdk包放進去,然后配好環(huán)境變量。
構(gòu)建Dockerfile
docker build -t="hadoop" .
將生成一個名為hadoop的鏡像
1.3 配置網(wǎng)絡(luò),并啟動docker容器
因為集群間必須要能網(wǎng)絡(luò)連通,所以要先配置好網(wǎng)絡(luò)。
創(chuàng)建網(wǎng)絡(luò)
docker network create --driver bridge hadoop-br
以上命令創(chuàng)建了一個名為hadoop-br的bridge類型的網(wǎng)絡(luò)
啟動docker時指定網(wǎng)絡(luò)

查看網(wǎng)絡(luò)情況
docker network inspect hadoop-br
執(zhí)行以上命令就可以看到對應(yīng)的網(wǎng)絡(luò)信息:

我們可以得知3臺機器對應(yīng)的ip:
172.18.0.2 hadoop1 172.18.0.3 hadoop2 172.18.0.4 hadoop3
登錄docker容器,互相之間就可以ping通了。
docker exec -it hadoop1 bash
docker exec -it hadoop2 bash
docker exec -it hadoop3 bas
本文轉(zhuǎn)載自博客園:
https://www.cnblogs.com/upupfeng/p/13616125.html