Docker部署Hadoop环境+Hive

本文详述如何使用Docker在Mac OS环境下搭建一个包含Hadoop和Hive的大数据集群。首先,介绍环境和应用准备,包括安装JDK、Hadoop和Hive。接着,构建基于Centos7的Docker镜像,安装Hadoop和Java。然后,通过创建自定义网络设置固定IP,搭建三节点Hadoop集群,并进行Hadoop配置,包括设置主机名映射、SSH免密登录、配置文件修改等。最后,安装并配置Hive,连接MySQL作为元数据存储,并启动Hive服务,验证集群运行正常。
摘要由CSDN通过智能技术生成


一、环境和应用准备

环境:Mac OS

安装包版本:

jdk-8u181-linux-x64.tar.gz
hadoop-2.7.3.tar.gz
apache-hive-3.1.1-bin.tar.gz
mysql-connector-java-5.1.48.tar.gz

已安装:Docker

二、构建images

使用Docker来启动三台Centos7虚拟机,三台机器上安装Hadoop和Java。

1. 获取centos镜像

docker pull centos

在这里插入图片描述
查看镜像列表的命令

docker images

在这里插入图片描述
2. 安装SSH

以centos7镜像为基础,构建一个带有SSH功能的centos

mkdir ~/centos7-ssh
cd centos7-ssh
vi Dockerfile

内容:

FROM centos
MAINTAINER JanZ

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

RUN echo "root:pass" | 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

RUN mkdir /var/run/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
  • 大意:选择一个已有的os镜像作为基础;安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no;安装openssh-clients;添加测试用户root,密码pass,并且将此用户添加到sudoers里;ssh-keygen 这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录;启动sshd服务并且暴露22端口。

构建新镜像,命名为 centos7-ssh

docker build -t="centos7-ssh" .

在这里插入图片描述
执行完成后,可以在镜像列表中看到

docker images

在这里插入图片描述
3. 构建Hadoop镜像

基于centos7-ssh镜像构建有JDK和Hadoop的镜像

mkdir ~/hadoop
cd ~/hadoop

注:在hadoop文件夹中(即 Dockerfile 所在目录)提前准备好 jdk-8u181-linux-x64.tar.gz 与 hadoop-2.7.3.tar.gz

vi Dockerfile

内容:

FROM centos7-ssh
ADD jdk-8u181-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/jdk1.8.0_181 /usr/local/jdk1.8
ENV JAVA_HOME /usr/local/jdk1.8
ENV PATH $JAVA_HOME/bin:$PATH

ADD hadoop-2.7.3.tar.gz /usr/local
RUN mv /usr/local/hadoop-2.7.3 /usr/local/hadoop
ENV HADOOP_HOME /usr/local/hadoop
ENV PATH $HADOOP_HOME/bin:$PATH

RUN yum install -y which sudo

基于 centos7-ssh 这个镜像,把 Java 和 Hadoop 的环境都配置好了

构建新镜像,命名为 hadoop

docker build -t="hadoop" .

在这里插入图片描述

三、搭建Hadoop集群

搭建有三个节点的hadoop集群,一主两从

主节点:hadoop0 ip:172.18.0.2
从节点1:hadoop1 ip:172.18.0.3
从节点2:hadoop2 ip:172.18.0.4

但是由于docker容器重新启动之后ip会发生变化,所以需要我们给docker设置固定ip。

1. 创建自定义网络(设置固定IP)

查看网络列表

docker network ls

在这里插入图片描述
创建自定义网络 mynetwork,并且指定网段:172.18.0.0/16

docker network create --subnet=172.18.0.0/16 mynetwork

在这里插入图片描述
2. 创建docker容器

启动三个容器,分别为hadoop0, hadoop1, hadoop2

docker run --name hadoop0 --hostname hadoop0 --net mynetwork --ip 172.18.0.2 -d -P -p 50070:50070 -p 8088:8088 hadoop
docker run --name hadoop1 --hostname hadoop1 --net mynetwork --ip 172.18.0.3 -d -P hadoop
docker run --name hadoop2 --hostname hadoop2 --net mynetwork --ip 172.18.0.4 -d -P hadoop

查看容器列表

docker ps

在这里插入图片描述

四、配置Hadoop集群

新开启三个终端,分别进入容器 hadoop0, hadoop1, hadoop2

docker 
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值