CRK 史上最逆天的 Hadoop 集群部署教程#
如果你是对Linux完全不熟悉的小白,那么强烈建议你使用虚拟机手动部署Hadoop集群,这样你可以更好的理解Hadoop集群的部署过程,集群之间的通信等等。
1. 背景提要#
传统的 Hadoop 部署方式,需要在每台虚拟机上分别安装配置,步骤繁琐,配置过程中重复性工作较多,且需要手动修改配置文件,容易出现错误。
那么对于实验环境,开发环境,我们真的需要这么生产级别的配置吗?就算是生产级别的配置,那也不会是手动配置,而是使用 k8s,mesos 等容器编排工具进行部署吧。
在一台电脑上部署几个虚拟机跑 Hadoop Node,这不也是伪分布式吗?那么我们为什么不直接使用 docker 容器呢?
所以,本文将介绍如何使用 docker 容器部署 Hadoop 集群,以及如何使用 docker-compose 进行编排。
Q: 主播主播,我没脑子怎么办?
A: :D,本教程完全可以卸载大脑!放心食用
Q: 什么烂文档,又臭又长,我不看
A: 第2节压缩包里面有操作的视频,看完之后,记得看3.4节
1.1 涉及知识(不感兴趣可以直接跳过)#
Docker#
老说 Docker,Docker,Docker 是个啥啊?
Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了 docker 引擎的服务器上(包括流行的 Linux 机器、windows 机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
磁盘占用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于原生 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
说人话就是可以理解为一台轻量级的虚拟机,直接使用实体机的一些资源,不需要像虚拟机那样需要额外的资源。
WSL#
WSL 又是什么啊?
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
所以都 2024 年了,想要在 Windows 下使用 linux 环境,如果没有隔离,多机的理由了,直接用 WSL 吧。
2. 准备条件#
下载作者准备的文件 https://www.123pan.com/s/aXrSVv-tncWd
充足的 C 盘空间,建议至少 50G (本教程安装需要占用约 7g 容量,含docker desktop))
Docker 是默认安装在 C 盘的,如果 C 盘空间不足,或者你有 C 盘洁癖,请看 4.2 节
3. 开始安装#
3.1 安装 Docker Desktop#
单单 Docker Daemon 是没有 GUI 的,所以我们需要安装 Docker Desktop
如果你有我打包好的文件
直接找到,进行安装
安装完成之后
到这里说明你已经做对了,完成教程的 80%了
3.2 构建 Hadoop 基础镜像#
找到我打包的文件,把它放到一个你喜欢的地方
进入文件夹
在此地方右键 –> 在终端打开
看到下图显示的这样,说明你又做对了
下面跟着敲命令
cd ./amd64
# 根据Dockerfile构建hadoop基础镜像
docker build . -t hadoop
看到这个,说明你又对了
下面就要耐心等待了,看你的网速和电脑速度了
如果是下面这样的话就是,大功告成了
下面跟着敲
cd ..
docker network create hadoop-network
docker-compose up -d #编排docker镜像,也就是hadoop集群搭建
恭喜你,大功告成
不出意外,你就可以访问了 Hadoop 暴露的几个端口如下:
- 8020 fs.defaultFS
- 9870 NameNode Web UI
- 9868 Secondary NameNode Web UI
- 8088 Yarn Web UI
你可以试试 127.0.0.1:9870 试试了
3.3 配置 host#
用管理员权限打开记事本
打开 host 文件C:\Windows\System32\drivers\etc
如果列表中没有hosts文件,在此处输入hosts,点旁边那个打开
写入
127.0.0.1 master
127.0.0.1 slave1
127.0.0.1 slave2
127.0.0.1 slave3
大功告成!!
已经可以用master:9870/
访问 master 了
3.4 ssh 连接#
节点 | 主机地址 | 用户名 | 密码 | ssh端口 |
---|---|---|---|---|
master | master | root | 123456 | 9000 |
slave1 | slave1 | root | 123456 | 9001 |
slave2 | slave2 | root | 123456 | 9002 |
slave3 | slave3 | root | 123456 | 9003 |
以连接 master 机器为例
如果你使用的是 xShell,主机地址,用户名,密码,端口这几个参数,填写就行
4.常见问题#
4.1 如何启动,暂停#
Docker Desktop 里面
- 绿色就是完全启动了
- 黄色就是部分开启,部分关闭
- 灰色就是关闭
4.2 C 盘大小不足怎么办呢#
鸣谢#
感谢 哈工大提供的环境配置方案 本教程基于此配置方案进行修改