上一篇使用Docker搭建了Hadoop的完全分布式:网站日志流量分析系统(该系统目前用虚拟机实现了离线分析模块,实时分析由于资源问题尚未完成---这次spark集群用于该项目的实时分析)
一、根据架构图搭建基础环境
①Scala版本:2.13以及JDK版本:1.8.231,scala下载地址:https://www.scala-lang.org/download/(安装过程略)
②Docker版本:Docker version 19.03.5,下载地址:https://docs.docker.com/install/linux/docker-ce/centos/(安装过程略)
③搭建zookeeper集群(版本:3.4.14),下载地址:http://mirror.bit.edu.cn/apache/zookeeper/
④搭建hadoop集群(版本:2.7.7),下载地址:https://archive.apache.org/dist/hadoop/common/
⑤安装flume(版本:1.9.0),下载地址:http://flume.apache.org/download.html
⑥搭建Kafka集群(版本:2.4.0),下载地址:http://kafka.apache.org/downloads
⑦搭建HBase集群(版本:0.98.17),下载地址:https://archive.apache.org/dist/hbase/
⑧搭建Spark集群(版本:2.4.4),下载地址:https://www.apache.org/dyn/closer.lua/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
基于以上环境来搭建Spark集群,最终实现网站流量的实时分析(离线分析模块已完成)--------网站日志流量分析系统,鄙人使用6个容器来实现以上环境的搭建,如下所示
二、启动容器并固定IP
可参考鄙人博客:使用Docker搭建Hadoop集群(伪分布式与完全分布式)里面有固定ip相关说明。
1、Dockerfile构建具备ssh的centos镜像
1.1编写Dockerfile
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 RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # 启动sshd服务并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]