環境準備
centos7.x機器爲例
系統:Centos 7,內核版本3.10
宿主機準備工作
- 安裝docker
安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
- 配置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
可以查看所有倉庫中所有docker版本,並選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-cli docker-ce containerd.io
- 服務啓停和確認
啓動docker,命令:systemctl start docker,然後加入開機啓動,如下
systemctl start docker
systemctl enable docker
- 檢查安裝是否成功
docker version
拉取鏡像並初始化鏡像
- 拉取鏡像 docker pull centos
默認是拉取centos: latest
如果需要拉取其他版本的鏡像,可以通過https://hub.docker.com/_/centos?tab=tags
如果你想獲取7.4的鏡像,則docker pull centos:centos7.4.1708
- 查看鏡像並啓動鏡像
docker images 可以查看到你的鏡像
使用 啓動容器進行初始化修改. -v進行目錄映射,後續傳輸文件會比較方便~
docker run -it -v /data:/data centos
- 進入容器後安裝必要的軟件
yum install openssh-clients openssh-server dbus rsync ntpdate which
其他工具
yum install iproute net-tools
初始化jdk, hadoop安裝包
從新的終端把jdk 和hadoop tgz包放到/data
再進入容器裏面,執行
tar -zxvf /data/jdkxxxx.tgz -C /opt/
tar -zxvf /datapool/hadoopxxxx.tgz -C /opt/
配置環境變量
vi /etc/profile
export JAVA_HOME="/opt/jdk1.7.0_80/"
export PATH=$PATH:$JAVA_HOME/bin
保存退出後,source /etc/profile
修改機器密碼
echo “root:111111”|chpasswd
配置hadoop配置文件後,參考正常hadoop配置即可。然後正常啓動HDFS服務
執行./bin/hadoop fs -ls / 保證可以正確執行
嘗試啓動或者停止yarn
問題:
[root@5a2d7be85df8 loongoop-1.0.5-v2.7.2]# ./sbin/start-yarn.sh
starting yarn daemons
localhost: ssh: connect to host localhost port 22: Network is unreachable
systemctl start sshd 無法啓動
(privileged=true 沒設置?)
---如果有其他缺少命令工具的,則yum安裝一下即可
-
保存容器修改並commit保存爲鏡像
docker commit -m "centos8 with hadoopx.x.x" 6e407cd676d3 centos8/hdp
查看打包結果 docker images
使用新鏡像創建容器並調整內容
- 啓動鏡像
docker run -d --name ct1 -h ct1 --privileged=true -v /data:/data centos8/lgp /usr/sbin/init
- 進入
docker exec -it ct1 /bin/bash
- 參數修改
重新修改/etc/hosts, hadoop 的slaves文件。爲當前節點的信息
執行啓動yarn,並查看進程服務即可
此時如果沒有問題,則表示 鏡像 centos8/hdp 可以直接使用了
後續可以在通過修改鏡像容器commit方式進行打包