系列文章目錄
docker:環境安裝
docker:Web遷移
docker:Haoop集群
文章目錄
- 系列文章目錄
- 前言
- 一、宿主機選擇
- 二、環境準備
- 1.前置技術
- 2.網絡環境
- 1. docker網卡
- 2. 分配IP
- 三、容器互聯
- 三、Jdk和Hadoop安裝
- 四、分發腳本
- 五、啟動Hadoop
- 總結
前言
年前學習了docker的相關知識,過年休息了多半月,現在開始繼續學習,這次要完成我之前多次做實驗的一個設想,就是用docker進行Hadoop集群部署,真正的完成一次構建,導出運行。
一、宿主機選擇
這里說一下我踩過的坑,具體原因還沒有找到,在最初的設想里,我是想在我的Debian服務器上運行Centos鏡像的,經過測試,會出現多個容器內部無法連接的現象,最終將宿主機和容器操作系統統一時這個問題消失了,具體原因未知,所以這里我依舊選擇用Cenos7作為宿主機器。
二、環境準備
1.前置技術
我要docker完成我Hadoop專欄中前兩章的集群搭建,有過了解后邊會更容易看懂。
Hadoop專欄
以下內容我只會記錄一些與專欄有差異的操作,相同的配置和操作將不會演示,所以你想從0搭一個集群,但是還沒有基礎,那現在趕緊退出。
2.網絡環境
1. docker網卡
docker network create --subnet=172.18.0.0/16 hadoop-br
我們為Hadoop集群專門新建一個網絡。用作集群內部的互聯。
2. 分配IP
我們在新建容器的時候直接完成域名和IP的綁定,就不用在docker內修改host文件了,docker會把域名和IP的對應關系直接記錄在指定的網絡中。
docker run -d --privileged -it -v /opt/software:/opt/software --name hadoop102 --ip 172.18.0.2 -h hadoop102 -p 9870:9870 --net hadoop-br centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop103 -h hadoop103 --net hadoop-br --ip 172.18.0.3 -p 8088:8088 centos:centos7.9.2009 /usr/sbin/init
docker run -d --privileged -ti --name hadoop104 -h hadoop104 --net hadoop-br --ip 172.18.0.4 centos:centos7.9.2009 /usr/sbin/init
這里順便將一些需要的文件通過數據卷掛載進去,一些Hadoop的WebUI需要用的端口直接也加上。
三、容器互聯
我們分別開三個終端,然后連接到三個容器。
docker exec -it hadoop102 bash
docker exec -it hadoop103 bash
docker exec -it hadoop104 bash
之后我們為每個終端創建新用戶,這里和專欄內容一樣,不演示。
然后為新用戶添加root權限,最基本的Centos7鏡像是沒有的/etc/sudoers的。
需要為每一個容器安裝sudo。
yum install sudo -y
然后即可編寫/etc/sudoers文件。
但是當修改時會出現這個報錯。
我們需要給其添加權限。
chmod 600 /etc/sudoers
然后可以正常修改了。
之后創建家目錄和工作目錄和專欄一樣,不演示。
現在我們轉換到新用戶開始建立免密登錄。
su atguigu
為三臺電腦安裝ssh
yum -y install openssh-clients openssh-server
我們在102上ping一下其它主機看看能否ping通。
能ping通就可以進行免密登錄的配置。
先對ssh進行配置
vi /etc/ssh/ssh_config
然后重啟一下ssh服務。
systemctl restart sshd
三臺容器都要修改重啟。
然后先手動ssh連接一下。
成功以后即可進行免密配置。
注意免密配置全程使用atguigu。
配置過程和專欄一樣,不演示。
配置完成后測試一下。
三、Jdk和Hadoop安裝
全程和專欄一致,不做演示。
四、分發腳本
在三個容器中安裝rsync
sudo yum install rsync -y
然后編寫分發腳本。
但是不知道為什么創建完之后無法直接調用,所以我們創造一個軟連接。
sudo ln -s /home/atguigu/bin/xsync /usr/bin/xsync
然后嘗試分發jdk和hadoop還有配置文件。
xsync /opt/module/sudo xsync /etc/profile.d/my_env.sh
再分發配置文件的時候會出現這個問題。
因為我們用了sudo,所以這條命令使用root執行的,但我們沒有給root用戶設置免密,現在我們要設置一下。
Ctrl+D切換會root用戶,然后設置密碼,三臺都設置。
passwd root
之后和atguigu一樣設置免密。
ssh-keygen -t rsassh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
現在切換到atguigu進行配置文件分發。
現在就可以正常分發了。
五、啟動Hadoop
hadoop102執行
hdfs namenode -format
sbin/start-dfs.sh
hadoop103執行
sbin/start-yarn.sh
然后在Web查看。
ip:9870
ip:8088
總結
至此集群的基本框架搭建完畢,可以更加自己的需要選擇保存鏡像或者上傳倉庫。