1.1. 启用 WSL 与假造机平台
1.1.1. 启勤劳能
启用 WSL并使用 Moba 毗连-CSDN博客
1.2 安装 Docker Desktop
最新版本链接:Docker Desktop: The #1 Containerization Tool for Developers | Docker
指定版本链接:Docker Desktop release notes | Docker Docs
(1)安装好 Docker Desktop,接受相干协议后,进入主界面。假如有 docker hub 帐户就用帐户登录,否则就选没有帐号继承即可。
(2)测试 Docker Desktop 是否安装乐成?可以在命令行或终端中输入命令:
1.3. Docker 常用设置
(1)镜像源设置
这里找的是阿里云的镜像源,链接:容器镜像服务 (aliyun.com)
进入 Docker Desktop 主界面 → 设置(Settings) → Docker 引擎(Docker Engine)
添加如下内容:
- "registry-mirrors": ["https://ib71hsz9.mirror.aliyuncs.com"]
复制代码 如图所示:
(2) 修改 Docker Desktop 分发存储路径
先检察所有已安装的 Windows Subsystem for Linux (WSL) 发行版的详细列表
而 Docker Desktop 默认将所有的 WSL2 分发所对应的 vhdx 硬盘映像文件存到路径:C:\Users\用户名\AppData\Local\Docker 下。为了数据安全性及 重用性,一样平常将上述文件迁移到其它硬盘中。 最新的 Docker Desktop 已支持在设置界面中直接修改 “Resources->Disk image location”,应用并重新启动即可。如下图所示:
实行后,应该可以看到在新的目的文件夹中有 data 与 main 两个子文件夹, 内里分别存放 Docker Desktop 系统及数据。 后面假如重新安装系统或者重新安装了 Docker Desktop,只要保留这两个目 录下的文件,则原来的所有设置及数据都可以还原。可按如下步调举行:
检察当前分发命令为:
停止并注销分发(注意,关闭 Docker Desktop 管理端)命令为:
- wsl -t docker-desktop
- wsl --unregister docker-desktop
- wsl -t docker-desktop-data
- wsl --unregister docker-desktop-data
复制代码 导入分发令为:
- wsl --import-in-place docker-desktop-data D:\WSL\DockerDesktopWSL\data\ext4.vhdx
- wsl --import-in-place docker-desktop D:\WSL\DockerDesktopWSL\main\ext4.vhdx
复制代码 重新打开 Docker Desktop 管理端
1.4. 基本镜像制作
为了淘汰重复工作,可以将集群存储与计算环境中的常用组件全部安装好, 并提交到 Docker Server 中,后续容器在些镜像上创建。
(1) 创建网络
不管是分布式存储还是分布式计算,集群的搭建必须包管在同一个网络中, 让集群内的所有计算机都可以相互访问。为此,我们通过 docker 单独创建一个集群网络,后续所有容器都在这个网络中运行。 检察当前网络命令:
类似结果:
- NETWORK ID NAME DRIVER SCOPE
- 3a6370a8f8eb bridge bridge local
- 583559d99159 host host local
- 80f6ea320f3b none null local
复制代码 创建集群网络命令:
- docker network create -d bridge cluster
复制代码 此中参数 -d bridge 表示毗连方式为网桥,cluster 表示网络名称
检察网络信息命令:
- docker network inspect cluster
复制代码 (2) 搜索镜像
(3) 拉取镜像
假如拉取失败大概是镜像源问题,尝试其他镜像源。
1.5. 制作镜像(跳过)
(1)Dockerfile 操作指令
指令含义FROM 镜像指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令MAINTAINER 名字说明新镜像的维护人信息RUN命令在所基于的镜像上实行命令,并提交到新的镜像中CMD [“要运行的程序”,“参数1”,“参数2”]指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令, 假如指定多条则只能最后一条被实行EXPOSE 端标语指定新镜像加载到Docker时要开启的端口ENV 环境变量 变量值设置一个环境变量的值,会被后面的RUN使用ADD 源文件/目次目的文件/目次将源文件复制到目的文件,源文件要与Dockerfile位于相同目次中,或者是一个URLCOPY 源文件/目次目的文件/目次将本地主机上的文件/目次复制到目的地点,源文件/目次要与Dockerfile在相同的目次中VOLUME [“目次”]在容器中创建一个挂载点USER 用户名/UID指定运行容器时的用户WORKDIR 路径(类似cd)为后续的RUN、CMD、ENTRYPOINT指定工作自录ONBUILD 命令指定所生成的镜像作为一个基础镜像时所要运行的命令HEALTHCHECK康健查抄 1.6. 创建容器
(1)创建网桥
- docker network create hadoop
- docker network ls
复制代码
(2)创建容器
- docker run -itd --name hadoop102 --network hadoop -p 8088:8088 -p 50070:50070 debian
复制代码 参数说明:--name,表示容器名称;--network 表示使用的网络;-p 表示映射窗口,8088:8088 表示将容器中的 8088 端口映射到主机的 8088 端口;debian,表示创建容器时使用的镜像名,也可镜像 ID(docker image list 检察);
假如之前创建失败过会出现容器已存在,这时候使用 docker rm 把他删了重新创建就好了
(3)检察容器
(4)检察网桥
- docker network inspect hadoop
复制代码 1.7. 进入容器搭建集群
1.7.1. 登录容器
1)假如容器已经关闭,重新启动一下
进入容器。
- docker exec -it hadoop102 bash
复制代码 表示以交互的方式附加到正在运行的容器,并实行容器中命令:bash
2)给 root 设置暗码
1.7.2. 安装软件
在安装基本软件后,可以 Debian 的软件源切换到国内,以提高后续软件安装的速率,淘汰等候时间,提高服从。下面以阿里云为例,地理位置也可切换为其它的源,例如腾讯,华为,清华。
- # 1. 更新系统
- apt update
- # 2. 安装网络工具
- apt install -y net-tools
- # 3. 安装 ping
- apt install -y iputils-ping
- # 4. 安装 vim 工具
- apt install -y vim
- # 5. 安装 ssh
- yum install -y openssh
- apt install -y openssh-server
- apt install -y openssh-client
- # 6. 安装 https 组件
- apt install -y apt-transport-https
- # 7. 安装 rsync
- apt install -y rsync
复制代码 【可选】更换软件源,以阿里云为例
备份原文件
- cd /etc/apt
- mv sources.list sources.list.bak
复制代码 编辑源设置文件命令为:
在该文件的最上面加入如下内容:
- deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
- deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
- deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
- deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
- deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
- deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
- deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
- deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
复制代码 更新软件库清单
- apt-get update
- apt-get upgrade
复制代码 1.7.3. 搭建集群
安装 JDK 和 Hadoop
1)在容器中创建安装包目次
- mkdir /opt/software
- mkdir /opt/module
复制代码 在本地主机上实行,将 JDK 压缩包复制到 Docker 容器中
- # docker cp /本地主机路径/JDK 包 容器 ID:/opt/software/
- docker cp jdk-8u144-linux-x64.tar.gz f889ba1fb3d2:/opt/software/
- docker cp hadoop-3.3.1.tar.gz f889ba1fb3d2:/opt/software/
复制代码
2)在容器中解压 JDK 压缩包
- tar -zxvf /opt/software/jdk-8u144-linux-x64.tar.gz -C /opt/module/
- tar -zxvf /opt/software/hadoop-3.3.1.tar.gz -C /opt/module/
复制代码 更改文件夹名称
- cd /opt/module/
- mv jdk1.8.0_144 jdk
复制代码 3)设置环境变量
在末尾添加内容如下:
- export JAVA_HOME=/opt/module/jdk
- export PATH=$JAVA_HOME/bin:$PATH
- export HADOOP_HOME=/opt/module/hadoop-3.3.1
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
复制代码 使环境变量立即见效
检测是否设置乐成(检察 Java 版本)
- # output
- java version "1.8.0_144"
- Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
- Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
复制代码 4)创建 HDFS 工作目次和 LOG 目次
创建 HDFS 的 NN 和 DN 工作主目次,创建 Hadoop 的 log 日志文件目次(建议将文件放在 /var 目次下,放别的地方也行)
- mkdir -p /var/big_data /var/log_hadoop
复制代码 设置 Hadoop 集群环境
首先,进入$HADOOP_HOME/etc/hadoop目次
- cd $HADOOP_HOME/etc/hadoop
复制代码 1)为 Hadoop 提供 JAVA 表明器路径信息,主要目的是解决远程访问 hadoop 时候JAVA_HOME无法继承的问题,同时将 Hadoop 的日志存储路径修改/var/log_hadoop路径下,其默认在$HADOOP_HOME/etc/hadoop/logs下,一样平常环境下建议重新指定路径。
添加内容如下:(找到对应位置,没有就加在最后;命令模式下,输入 |