在容器上安装Hadoop3.4.0

2.1k 词

Hadoop 作为一个强大且广泛使用的分布式计算框架,能够有效处理大规模数据集。为了更好地利用容器技术提升Hadoop的可移植性和部署效率,本指南详细介绍了如何在容器中安装和配置 Hadoop 3.4.0。我们将基于 Debian 12 容器镜像,并通过 podman 来管理容器化环境,旨在为用户提供便捷的容器化Hadoop部署流程。

Hadoop安装

给podman增加docker源

/etc/containers/registries.conf中增加如下内容

1
2
[registries.search]
registries = ['docker.io']

拉取debian12镜像

1
podman pull debian:bookworm

下载相关软件

1
2
3
4
5
6
7
8
9
10
mkdir hadoop
cd hadoop

# Jdk1.8
wget "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u422-b05/OpenJDK8U-jdk_x64_linux_hotspot_8u422b05.tar.gz" -O jdk.tar.gz
tar -zxvf jdk.tar.gz

# Hadoop3.4.0
wget "https://archive.apache.org/dist/hadoop/core/hadoop-3.4.0/hadoop-3.4.0.tar.gz" -O hadoop.tar.gz
tar -zxvf hadoop.tar.gz

构建镜像

创建一个名为 Dockerfile 的文件写入如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
FROM debian:bookworm
# 配置ssh
RUN apt update && apt install -y wget sudo ssh \
&& ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" -q \
&& cat /root/.ssh/id_ed25519.pub >> /root/.ssh/authorized_keys

# 配置java
ADD jdk8u422-b05 /usr/local/java/jdk8u422-b05
ADD hadoop-3.4.0 /usr/local/hadoop

#java
ENV JAVA_HOME=/usr/local/java/jdk8u422-b05
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH=${JAVA_HOME}/bin:$PATH
# hadoop
ENV HADOOP_HOME=/usr/local/hadoop
ENV PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
ENV HADOOP_COMMON_HOME=$HADOOP_HOME
ENV HADOOP_HDFS_HOME=$HADOOP_HOME
ENV HADOOP_MAPRED_HOME=$HADOOP_HOME
ENV HADOOP_YARN_HOME=$HADOOP_HOME
ENV HADOOP_INSTALL=$HADOOP_HOME
ENV HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
ENV HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
ENV HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
ENV HDFS_DATANODE_USER=root
ENV HDFS_SECONDARYNAMENODE_USER=root
ENV HDFS_NAMENODE_USER=root
ENV YARN_RESOURCEMANAGER_USER=root
ENV YARN_NODEMANAGER_USER=root

执行构建镜像命令

1
podman build -t hadoop:v1 .

启动容器

1
podman run -it --name hadoop -it -d debian:bookworm

使用新创建的镜像创建容器

1
2
podman run -it --name hadoop -it -d -p 8088:8088 -p 9870:9870 hadoop:v1 /bin/bash /root/start.sh
podman start hadoop

通过上述步骤,我们成功地在容器环境中安装并配置了 Hadoop 3.4.0,确保了 Hadoop 在容器中的高效运行。容器化 Hadoop 不仅提升了其灵活性和可移植性,同时也简化了多节点集群的管理与维护。如果需要进一步扩展或定制 Hadoop 环境,可以基于此容器镜像进行后续的开发和优化,助力大数据处理项目顺利进行。

在容器上安装Hadoop3.4.0

https://blog.lingxh.com/post/hadoop/
Author

lingxh

Published at

2024-09-10

License

CC BY-NC-SA 4.0

留言