利用Docker搭建大数据处理集群

前面的android项目刚完,项目总结文章还未写完,公司需要研究大数据处理应用平台,任务下达到我们部门了,鉴于部门物理机只有一台,而虚拟机启动太慢的原因,自己动手在Docker搭建了三个三节点的数据分析集群,主要包括Hdfs集群(分布式存储集群),YARN集群(分布式资源管理集群),Spark集群(分布式计算集群)。
在开始正文之前,需要掌握以下基础知识:

  • Linux基础知识(推荐《鸟哥的Linux私房菜》,我早年看的时候是第三版,现在已经有了新版本);
  • Doceker镜像,容器和仓库的概念(推荐《Docker — 从入门到实践》);
  • Hadoop的基础概念和原理;

在Centos7上搭建数据分析集群过程包括:

  • 在Cnetos7上安装Docker并创建Hadoop镜像和三节点容器
  • 在Docker上配置三节点Hdfs集群
  • 在Docker上配置三节点Yarn集群
  • 在Docker上配置三节点Spark集群

(一)安装Docker与创建Hadoop镜像和三节点容器

1.1 安装Dcoker

本文在Cnetos7系统上安装Docker,安装Docker对于Linux系统的要求是
64 位操作系统,内核版本至少为 3.10。

1.1.1 安装Docker

curl -sSL https://get.docker.com/ | sh

1.1.2 配置Docker加速器和开机启动服务

这里需要注册一个阿里云账号,每个账号有自己专属的加速器,专属加速器的地址,根据自己的地址配。

sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart

1.2 在Docker上创建Hadoop镜像

1.2.1 从Docker Hub官网仓库上获取centos镜像库

docker pull centos
#查看镜像库
docker images

1.2.2 生成带有SSH功能的centos的镜像文件

为了后面配置各节点之间的SSH免密码登陆,需要在pull下的centos镜像库种安装SSH,
这里利用 Dockerfile 文件来创建镜像

cd /usr/local

# 创建一个存放带ssh的centos镜像Dockerfile文件的目录
mkdir DockerImagesFiles/centos7.shh

#创建带ssh的centos的Dockerfile 文件
vi Dockerfile

# Dockerfile文件内容
#基于centos镜像库创建
FROM centos
MAINTAINER dys
#安装ssh
RUN yum install -y openssh-server sudo
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN yum  install -y openssh-clients

#配置root名
RUN echo "root:123456" | chpasswd
RUN echo "root   ALL=(ALL)       ALL" >> /etc/sudoers
#生成ssh key
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服务
RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

1.2.3 根据上面的Dockerfile生成centos7-ssh镜像

docker build -t="centos7-ssh" .
#执行完成后,查看已安装的镜像库
docker images

1.2.4 生成Hadoop镜像库文件

在构建Hadoop镜像库的Dockerfile所在目录下,上传已经下载的 jdk-8u101-linux-x64.tar.gz, hadoop-2.7.3.tar.gz,scala-2.11.8.tgz,spark-2.0.1-bin-hadoop2.7.tgz。

注意:这里要提前在Dockerfile文件配置环境变量,如果镜像库构建完成后,在
容器中配置环境变量是不起作用的。
cd /usr/local

# 创建一个存放hadoop镜像Dockerfile文件的目录
mkdir DockerImagesFiles/hadoop

#创建带ssh的centos的Dockerfile 文件
vi Dockerfile

# Dockerfile文件内容
#基于centos7-ssh构建
FROM centos7-ssh
#安装java
ADD jdk-8u101-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_101 /usr/local/jdk1.8
#配置JAVA环境变量
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH
#安装hadoop
ADD hadoop-2.7.3.tar.gz /usr/local
RUN mv /usr/local/hadoop-2.7.3 /usr/local/hadoop
#配置hadoop环境变量
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH

#安装scala 注意Spark2.0.1对于Scala的版本要求是2.11.x
ADD scala
  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值