揭秘 Docker 简化版 Hadoop 集群搭建:轻松上云,数据大处理一步到位

前言
随着大数据时代的到来,Hadoop 作为一种强大的分布式计算框架,被广泛应用于海量数据的存储和处理。而 Docker 技术的兴起,使得 Hadoop 集群的搭建变得更加简单和高效。本文将详细介绍如何使用 Docker 简化版 Hadoop 集群搭建,帮助读者轻松上云,实现数据大处理一步到位。
基础环境
在进行 Hadoop 集群搭建之前,需要准备以下基础环境:
操作系统:CentOS
7
⁄
8
或更高版本。
Docker:安装 Docker 引擎,版本建议为 Docker CE 19.03 或更高。
Java 环境:Hadoop 是基于 Java 的,因此需要安装 JDK 8。
Hadoop 基础镜像制作
创建 Dockerfile
:首先,创建一个名为
Dockerfile
的文件,并添加以下内容:
FROM centos:7.9.2009

# 安装系统工具包
RUN yum install -y iputils nc less libcurl zip unzip tar net-tools iptables wget telnet ntp kde-l10n-Chinese

# 设置时区为 Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone

# 安装 JDK 8
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-headless

# 设置环境变量
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk
ENV PATH $JAVA_HOME/bin:$PATH

# 创建 Hadoop 目录
RUN mkdir -p /opt/hadoop

# 拷贝 Hadoop 安装包到容器中
COPY hadoop-3.3.4.tar.gz /opt/hadoop/

# 解压 Hadoop 安装包
RUN cd /opt/hadoop && tar -zxvf hadoop-3.3.4.tar.gz

# 配置环境变量
ENV HADOOP_HOME /opt/hadoop/hadoop-3.3.4
ENV PATH $HADOOP_HOME/bin:$PATH

# 暴露端口
EXPOSE 8040

CMD [“hadoop”, “daemon”, “start”]
构建镜像
:在终端中执行以下命令构建镜像:
docker build -t hadoop-base .
运行容器
:使用以下命令运行一个 Hadoop 容器:
docker run -d -p 8040:8040 –name hadoop-base hadoop-base
Hadoop 集群部署
创建多个 Hadoop 容器
:根据实际需求,创建多个 Hadoop 容器来模拟 Hadoop 集群。例如,创建 NameNode、SecondaryNameNode、DataNode 和 ResourceManager 容器。
docker run -d –name hadoop-namenode -e HADOOP_DAEMON=namenode hadoop-base
docker run -d –name hadoop-secondarynamenode -e HADOOP_DAEMON=secondarynamenode hadoop-base
docker run -d –name hadoop-datanode -e HADOOP_DAEMON=datanode hadoop-base
docker run -d –name hadoop-resourcemanager -e HADOOP_DAEMON=resourcemanager hadoop-base
配置集群 SSH 互信
:在所有 Hadoop 容器之间配置 SSH 互信,以便集群节点之间能够相互通信。
docker exec -it hadoop-namenode /bin/bash
ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
docker exec -it hadoop-secondarynamenode /bin/bash
ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
docker exec -it hadoop-datanode /bin/bash
ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
docker exec -it hadoop-resourcemanager /bin/bash
ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
配置集群节点
:进入 NameNode 节点,修改配置文件
core-site.xml
、
hdfs-site.xml
、
yarn-site.xml
和
mapred-site.xml
,并同步操作其他节点。
# 修改 core-site.xml
fs.defaultFS
hdfs://hadoop-namenode:8040

# 修改 hdfs-site.xml
dfs.replication
3

# 修改 yarn-site.xml
yarn.resourcemanager.address
hadoop-resourcemanager:8040

# 修改 mapred-site.xml
mapreduce.jobtracker.address
hadoop-namenode:8040

启动集群环境
:在 NameNode 节点上执行以下命令启动集群环境:
docker exec -it hadoop-namenode /bin/bash
hdfs namenode -format
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
docker exec -it hadoop-resourcemanager /bin/bash
yarn-daemon.sh start resourcemanager
验证安装
:在浏览器中访问 NameNode Web UI(
http://hadoop-namenode:8040/)、ResourceManager
Web UI(
http://hadoop-resourcemanager:8040/)和
MapReduce JobHistory Server Web UI(
http://hadoop-namenode:8040/jobhistory/),验证集群是否正常运行。
Hadoop 简单使用
创建目录并查看
:
hdfs dfs -mkdir -p /user/hadoop
hdfs dfs -ls /
上传文件
:
hdfs dfs -put /path/to/local/file /user/hadoop/
下载文件
:
hdfs dfs -get /user/hadoop/file /path/to/local/
总结
通过使用 Docker 简化版 Hadoop 集群搭建,我们可以轻松地将 Hadoop 集群部署到云端,实现高效的数据处理。本文详细介绍了 Docker 简化版 Hadoop 集群的搭建过程,包括基础环境准备、Hadoop 基础镜像制作、集群部署、配置集群 SSH 互信、集群节点配置、启动集群环境、验证安装和 Hadoop 简单使用等步骤。希望本文能帮助读者快速掌握 Docker 简化版 Hadoop 集群搭建,实现高效的数据处理。