DJ王大海

Back

通过容器搭建伪分布式 Hadoop 环境Blur image

Hadoop 是一个开源框架,它使用分布式存储和并行处理来管理和处理大量数据。它主要用于解决海量数据的存储与计算问题。这里演示一下如何在 Podman 容器中简单地部署 Hadoop 环境。

Podman 的安装#

Podman 背靠 Redhat,各大发行版的仓库中几乎都有,所以直接用包管理器安装即可。

但由于 Podman 在拉取镜像时,不能省略前面的 docker.io/ 前缀,每次都手动添加当然也是可以的,但这里还是推荐在 podman config file 里设置好。

修改全局或是用户的 config file:

sudo nvim /etc/containers/registries.conf # 全局
nvim ~/.config/containers/registries.conf # 用户
bash

新增如下内容:

unqualified-search-registries = ["docker.io"] # [!code ++]
plaintext

由于一些众所周知的原因,目前 Docker 的国内代理都不是很稳定,本文就不进行相关的配置了。

构建镜像#

克隆仓库:

Invisibox / Hadoop-docker-compose

Waiting for api.github.com...

???
???
???
?????
git clone https://github.com/Invisibox/Hadoop-docker-compose.git
bash

项目树状结构如下:

Containerfile 内容如下,可根据自身需求进行修改:

Containerfile

./scripts 目录下存有 entrypoint.sh 启动脚本,这里可以根据你的实际需求微调:

entrypoint.sh

切换到项目目录,下载必要的软件包:

cd Hadoop-docker-compose

mkdir -p packages
cd packages

# 下载Java 1.8 JDK
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz

# 下载Hadoop 3.3.6
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

# 下载HBase 2.5.11
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.5.11/hbase-2.5.11-hadoop3-bin.tar.gz

cd ..
bash

构建镜像并启动容器:

使用 Podman:

podman-compose up -d
bash

或使用 Docker:

docker-compose up -d
bash

访问服务#

构建完成后,可通过以下地址访问各服务:

运行容器#

podman exec -it hadoop-hbase bash
# 或
docker exec -it hadoop-hbase bash
bash

数据持久化#

数据通过 Docker volumes 进行持久化:

  • hadoop-data: /usr/local/hadoop/tmp
  • hbase-data: /usr/local/hbase/data

用户信息#

容器默认使用 hadoop 用户,密码 hadoop,可无密码执行 sudo。

通过容器搭建伪分布式 Hadoop 环境
https://astro-pure.js.org/blog/2025/hadoop-podman
Author 小岛秀儿
Published at 2025年4月4日
Comment seems to stuck. Try to refresh?✨