本文将介绍如何在 Docker 容器中安装和配置 Hadoop,具体步骤包括环境准备、JDK 安装、SSH 配置以及 Hadoop 的安装与启动。

0.准备工作

  • 安装Docker并拉取系统镜像

本文使用Ubuntu 18.04镜像,可以通过以下命令拉取镜像:

docker pull ubuntu:18.04
  • 新建并启动一个容器

为了在宿主机中访问HDFS Web界面,需要配置端口映射。Hadoop 2.0的默认端口为50070。使用以下命令启动容器:

docker run -p 50070:50070 -it ubuntu:18.04 /bin/bash
  • 使用 uname -m 查看系统架构,根据对应的系统架构传输合适的 JDK Hadoop 安装包到容器中
docker cp <jdk路径> <容器id>:<容器路径>
docker cp <hadoop路径> <容器id>:<容器路径>

1.安装JDK

1.移动并解压JDK安装包

将JDK安装包移动到 /usr/local目录,并解压:

mv <jdk路径> /usr/local
cd /usr/local
tar -xzvf jdk-8u202-linux-x64.tar.gz

2.配置环境变量

使用 vim ~/.bashrc编辑环境变量,添加以下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH

保存后,使用 source ~/.bashrc使环境变量生效。

3.验证JDK安装

使用以下命令验证JDK是否安装成功:

java -version

如果成功安装,将正确显示JDK版本信息。

2.安装并配置ssh

1.安装ssh服务

使用以下命令安装SSH服务:

apt-get update
apt-get install -y openssh-server

2.启动ssh服务

启动SSH服务并查看状态:

service ssh start
service ssh status

3.生成ssh密钥

生成SSH密钥并配置免密登录:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4.测试ssh连接

ssh localhost

3.安装Hadoop

1.解压Hadoop安装包

将Hadoop安装包解压到 /usr/local目录:

tar -xzvf hadoop-2.9.2.tar.gz -C /usr/local

2.配置Hadoop环境变量

编辑 ~/.bashrc文件,添加以下内容:

export HADOOP_HOME=/usr/local/hadoop-2.9.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

保存后,使用 source ~/.bashrc使环境变量生效,可以使用 hadoop version 命令可以查看是否配置成功。

3.配置Hadoop环境

编辑 hadoop-env.sh文件,设置JAVA\_HOME和HADOOP\_HOME:

export JAVA_HOME=${JAVA_HOME}
export HADOOP_HOME=/usr/local/hadoop-2.9.2
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

4.修改Hadoop配置文件

  • core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
  • hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

5.启动Hadoop

在首次启动Hadoop前,需要使用 hdfs namenode -format,完成名称节点的初始化操作,随后可以使用 start-all.sh尝试启动Hadoop

6.验证Hadoop启动

使用 jps命令查看Java进程,确认以下组件是否正常启动:

jps

  • NameNode
  • DataNode
  • NodeManager
  • ResourceManager
  • SecondaryNameNode

如果成功启动,则此时在宿主机中则可以成功访问 localhost:50070

localhost:50070

总结

通过以上步骤,则可以成功在Docker容器中安装并配置了Hadoop。此配置适用于单节点环境,适合平时的学习和测试使用。如果需要部署多节点集群,可以在此基础上再进行额外的扩展。

最后修改:2025 年 02 月 15 日
如果觉得我的文章对你有用,请随意赞赏