ToB企服应用市场:ToB评测及商务社交产业平台

标题: 使用 Docker 搭建 Hadoop 集群 [打印本页]

作者: 曂沅仴駦    时间: 2024-12-29 16:41
标题: 使用 Docker 搭建 Hadoop 集群
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. docker -v
  2. # 或者
  3. docker info
复制代码

1.3. Docker 常用设置

(1)镜像源设置
这里找的是阿里云的镜像源,链接:容器镜像服务 (aliyun.com)

进入 Docker Desktop 主界面 → 设置(Settings) → Docker 引擎(Docker Engine)
添加如下内容:
  1. "registry-mirrors": ["https://ib71hsz9.mirror.aliyuncs.com"]
复制代码
如图所示:

(2) 修改 Docker Desktop 分发存储路径
先检察所有已安装的 Windows Subsystem for Linux (WSL) 发行版的详细列表
  1. wsl --list --all -v
复制代码

而 Docker Desktop 默认将所有的 WSL2 分发所对应的 vhdx 硬盘映像文件存到路径:C:\Users\用户名\AppData\Local\Docker 下。为了数据安全性及 重用性,一样平常将上述文件迁移到其它硬盘中。 最新的 Docker Desktop 已支持在设置界面中直接修改 “Resources->Disk image location”,应用并重新启动即可。如下图所示:

实行后,应该可以看到在新的目的文件夹中有 data 与 main 两个子文件夹, 内里分别存放 Docker Desktop 系统及数据。 后面假如重新安装系统或者重新安装了 Docker Desktop,只要保留这两个目 录下的文件,则原来的所有设置及数据都可以还原。可按如下步调举行:
检察当前分发命令为:
  1. wsl -l --all -v
复制代码
停止并注销分发(注意,关闭 Docker Desktop 管理端)命令为:
  1. wsl -t docker-desktop
  2. wsl --unregister docker-desktop
  3. wsl -t docker-desktop-data
  4. wsl --unregister docker-desktop-data
复制代码
导入分发令为:
  1. wsl --import-in-place docker-desktop-data  D:\WSL\DockerDesktopWSL\data\ext4.vhdx
  2. wsl --import-in-place docker-desktop  D:\WSL\DockerDesktopWSL\main\ext4.vhdx
复制代码
重新打开 Docker Desktop 管理端
1.4. 基本镜像制作

为了淘汰重复工作,可以将集群存储与计算环境中的常用组件全部安装好, 并提交到 Docker Server 中,后续容器在些镜像上创建。
(1) 创建网络
不管是分布式存储还是分布式计算,集群的搭建必须包管在同一个网络中, 让集群内的所有计算机都可以相互访问。为此,我们通过 docker 单独创建一个集群网络,后续所有容器都在这个网络中运行。 检察当前网络命令:
  1. docker network ls
复制代码
类似结果:
  1. NETWORK ID     NAME      DRIVER    SCOPE
  2. 3a6370a8f8eb   bridge    bridge    local
  3. 583559d99159   host      host      local
  4. 80f6ea320f3b   none      null      local
复制代码
创建集群网络命令:
  1. docker network create -d bridge cluster
复制代码
此中参数 -d bridge 表示毗连方式为网桥,cluster 表示网络名称
检察网络信息命令:
  1. docker network inspect cluster
复制代码
(2) 搜索镜像
  1. docker search debian
复制代码
(3) 拉取镜像
  1. docker pull debian
复制代码
假如拉取失败大概是镜像源问题,尝试其他镜像源。
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)创建网桥
  1. docker network create hadoop
  2. docker network ls
复制代码

(2)创建容器
  1. 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)检察容器
  1. docker ps
复制代码
(4)检察网桥
  1. docker network inspect hadoop
复制代码
1.7. 进入容器搭建集群

1.7.1. 登录容器

1)假如容器已经关闭,重新启动一下
  1. docker start hadoop102
复制代码
进入容器。
  1. docker exec -it hadoop102 bash
复制代码
表示以交互的方式附加到正在运行的容器,并实行容器中命令:bash
2)给 root 设置暗码
  1. passwd root
复制代码
1.7.2. 安装软件

在安装基本软件后,可以 Debian 的软件源切换到国内,以提高后续软件安装的速率,淘汰等候时间,提高服从。下面以阿里云为例,地理位置也可切换为其它的源,例如腾讯,华为,清华。
  1. # 1. 更新系统
  2. apt update
  3. # 2. 安装网络工具
  4. apt install -y net-tools
  5. # 3. 安装 ping
  6. apt install -y iputils-ping
  7. # 4. 安装 vim 工具
  8. apt install -y vim
  9. # 5. 安装 ssh
  10. yum install -y openssh
  11. apt install -y openssh-server
  12. apt install -y openssh-client
  13. # 6. 安装 https 组件
  14. apt install -y apt-transport-https
  15. # 7. 安装 rsync
  16. apt install -y rsync
复制代码
【可选】更换软件源,以阿里云为例
备份原文件
  1. cd /etc/apt
  2. mv sources.list sources.list.bak
复制代码
编辑源设置文件命令为:
  1. vim sources.list
复制代码
在该文件的最上面加入如下内容:
  1. deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
  2. deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
  3. deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
  4. deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
  5. deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
  6. deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
  7. deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
  8. deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
复制代码
更新软件库清单
  1. apt-get update
  2. apt-get upgrade
复制代码
1.7.3. 搭建集群

安装 JDK 和 Hadoop

1)在容器中创建安装包目次
  1. mkdir /opt/software
  2. mkdir /opt/module
复制代码
在本地主机上实行,将 JDK 压缩包复制到 Docker 容器中
  1. # docker cp /本地主机路径/JDK 包 容器 ID:/opt/software/
  2. docker cp jdk-8u144-linux-x64.tar.gz f889ba1fb3d2:/opt/software/
  3. docker cp hadoop-3.3.1.tar.gz f889ba1fb3d2:/opt/software/
复制代码

2)在容器中解压 JDK 压缩包
  1. tar -zxvf /opt/software/jdk-8u144-linux-x64.tar.gz -C /opt/module/
  2. tar -zxvf /opt/software/hadoop-3.3.1.tar.gz -C /opt/module/
复制代码
更改文件夹名称
  1. cd /opt/module/
  2. mv jdk1.8.0_144 jdk
复制代码
3)设置环境变量
  1. vim /etc/profile
复制代码
在末尾添加内容如下:
  1. export JAVA_HOME=/opt/module/jdk
  2. export PATH=$JAVA_HOME/bin:$PATH
  3. export HADOOP_HOME=/opt/module/hadoop-3.3.1
  4. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
复制代码
使环境变量立即见效
  1. source /etc/profile
复制代码
检测是否设置乐成(检察 Java 版本)
  1. java -version
复制代码
  1. # output
  2. java version "1.8.0_144"
  3. Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
复制代码
4)创建 HDFS 工作目次和 LOG 目次
创建 HDFS 的 NN 和 DN 工作主目次,创建 Hadoop 的 log 日志文件目次(建议将文件放在 /var 目次下,放别的地方也行)
  1. mkdir -p /var/big_data /var/log_hadoop
复制代码
设置 Hadoop 集群环境

首先,进入$HADOOP_HOME/etc/hadoop目次
  1. cd $HADOOP_HOME/etc/hadoop
复制代码
1)为 Hadoop 提供 JAVA 表明器路径信息,主要目的是解决远程访问 hadoop 时候JAVA_HOME无法继承的问题,同时将 Hadoop 的日志存储路径修改/var/log_hadoop路径下,其默认在$HADOOP_HOME/etc/hadoop/logs下,一样平常环境下建议重新指定路径。
  1. vim hadoop-env.sh
复制代码
添加内容如下:(找到对应位置,没有就加在最后;命令模式下,输入




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4