CentOS镜像作为Hadoop运行docker pull centos:8
Java与SSH环境创建一个名为 java_ssh_proto的容器
docker run -d --name=java_ssh_proto --privileged centos:8 /usr/sbin/init
docker exec -it java_ssh_proto bash
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pskfQP7i-1656940564945)(Hadoop学习笔记.assets/image-20220703164811913.png)]
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/releasever\//releasever-stream\//g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache
如果出现以下错误
解决方法:
进入repos目录
cd /etc/yum.repos.d/
- 1
修改文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
- 1
- 2
再次缓存更新即可解决
yum makecache
- 1
稍等片刻即可
OpenJDK8和SSH服务yum install -y java-1.8.0-openjdk-devel openssh-clients openssh-server
SSH服务systemctl enable sshd && systemctl start sshd
至此,包含 Java 与SSH环境的容器创建完毕
使用ctrl+d或者exit命令退出容器
docker stop java_ssh_proto
docker commit java_ssh_proto java_ssh
docker run -d --name=hadoop_single --privileged java_ssh /usr/sbin/init
使用阿里云镜像下载Hadoop
wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz
镜像下载速度也勉勉强强。。。但是至少是比官网快多了
将下载好的 hadoop 压缩包拷贝到容器中的 /root 目录下
docker cp hadoop-3.2.3.tar.gz hadoop_single:/root/
进入容器
docker exec -it hadoop_single bash
进入 /root 目录
cd /root
解压压缩包
tar -zxf hadoop-3.2.3.tar.gz
解压后将得到一个文件夹 hadoop-3.2.3,现在把它拷贝到一个常用的地方:
mv hadoop-3.2.3 /usr/local/hadoop
配置环境变量
echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/bashrc
echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/bashrc
退出容器并重新进入,输入echo $HADOOP_HOME 的结果应该是 /usr/local/hadoop

配置hadoop内置的环境变量
echo "export JAVA_HOME=/usr" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
echo "export HADOOP_HOME=/usr/local/hadoop" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
输入下列命令查看是否成功
hadoop version
(如果报 command not found 便再执行一次添加环境变量步骤并退出重进容器)

至此,Hadoop容器制作完毕,接下来进入实际使用学习。