之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自从学了Docker以后,什么东西都想往Docker里放,这次操练一把,用Docker来构建Hadoop集群(此时我的脑子里还想用Docker Spark集群,后续……),这里搭建的Hadoop主要服务于之前没有完成的项目:网站日志流量分析系统(该系统目前用虚拟机实现了离线分析模块,实时分析由于资源问题尚未完成,我想这次不担心了)考虑到阿里云ECS对于我个人来说,成本有点太高了,但是自从学了Dokcer以后,我再也不怕了,用这一台就够啦,哈哈哈哈……下面开始吧!安装过程较长,so please be patient!
一、环境准备
①阿里云轻量应用服务器(学生价很实惠的~),我的配置:1C、2G、40G(足够了)
②CentOS7.3,内核4.4(可用uname -r 查看,自带的3.10.x可能会导致Docker运行不稳定可参考鄙人另一篇博客:从centos7镜像到搭建kubernetes集群(kubeadm方式安装)里面有关于升级内核命令)
③Docker版本:19.03.5(安装参考官网即可,镜像加速可参考鄙人另一篇博客:Docker配置阿里云镜像源)
④JDK1.8:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
⑤Hadoop:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz (ps:source为源码包,binary为安装包)
二、DockerFile构建具备ssh功能的镜像
1、创建对应目录
mkdir centos-ssh cd centos-ssh vim Dockerfile #这里docker build时缺省名为Dockerfile
2、编写Dockerfile
#选择一个已有的OS镜像作为基础 FROM centos # 镜像的作者 MAINTAINER xiedong # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no RUN yum install -y openssh-server sudo RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config #安装openssh-clients RUN yum install -y openssh-clients # 添加测试用户root,密码root,并且将此用户添加到sudoers里 RUN echo "root:root" | chpasswd RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers # 启动sshd服务并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
3、构建镜像
docker build -t 'xd/centos-ssh' . #注意别忘记末尾的点
三、DokcerFile构建jdk1.8镜像(基于ssh镜像)
1、创建目录
2、编辑Dockefile(docker build 缺省名为Dockerfile)
3、构建jdk1.8镜像
四、DockerFile构建hadoop镜像(基于ssh和jdk)
五、pipework固定IP
六、Docker构建Hadoop集群(伪分布式与完全分布式)
参考自:https://blog.csdn.net/xu470438000/article/details/50512442(如有侵权,请联系删除)