本文将介绍如何在 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进程,确认以下组件是否正常启动:
- NameNode
- DataNode
- NodeManager
- ResourceManager
- SecondaryNameNode
如果成功启动,则此时在宿主机中则可以成功访问 localhost:50070
总结
通过以上步骤,则可以成功在Docker容器中安装并配置了Hadoop。此配置适用于单节点环境,适合平时的学习和测试使用。如果需要部署多节点集群,可以在此基础上再进行额外的扩展。