当前位置 博文首页 > ?:Docker学习之路06:基于 Docker 在Ubuntu系统部署Hadoop、Hba

    ?:Docker学习之路06:基于 Docker 在Ubuntu系统部署Hadoop、Hba

    作者:[db:作者] 时间:2021-07-17 15:44

    基于 Docker 在Ubuntu系统部署Hadoop、Hbase以及Spark


    Docker学习路线传送门:

    Docker学习之路01:Docker的安装
    Docker学习之路02:阿里云镜像加速器
    Docker学习之路03:Docker的常用命令
    Docker学习之路04:创建定制Nginx镜像
    Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!
    Docker学习之路06:基于 Docker 在Ubuntu系统部署Hadoop、Hbase以及Spark


    一、准备工作

    前期需要安装docker配置镜像加速器

    如果还不会的同学可以看下我的《Docker学习之路01:Docker的安装》和《Docker学习之路02:阿里云镜像加速器》

    然后今天我们需要基于Docker构建Hadoop平台,通过此平台我们可以更加方便地完成MapReduce等操作

    提醒!!!

    由于此项目需要在一台虚拟机上部署3个节点,因此比较消耗内存,需要大家将虚拟机内存调到4G以上!

    其中,我们是使用 Ubuntu 16.04 系统,如果需要使用其他的系统,则对此篇文章的操作稍作修改即可!

    二、启动Docker

    1.启动 Docker 服务

    [root@master ~]# service docker start
    

    2.显示 Docker 中所有正在运行的容器

    [root@master ~]# docker ps 
    

    由于 Docker 刚刚才安装,我们没有运行任何容器,所以显示结果如下所示
    在这里插入图片描述

    3.Hadoop 集群单独构建一个虚拟的网络

    [root@master ~]# docker network create --driver=bridge hadoop
    

    查看 Docker 中的网络

    [root@master ~]# docker network ls
    

    在这里插入图片描述

    4.查找 ubuntu 容器

    [root@master ~]# docker search ubuntu
    

    在这里插入图片描述

    5.下载 ubuntu 16.04 版本的镜像文件

    [root@master ~]# docker pull ubuntu:16.04
    16.04: Pulling from library/ubuntu
    92473f7ef455: Pull complete 
    fb52bde70123: Pull complete 
    64788f86be3f: Pull complete 
    33f6d5f2e001: Pull complete 
    Digest: sha256:eed7e1076bbc1f342c4474c718e5438af4784f59a4e88ad687dbb98483b59ee4
    Status: Downloaded newer image for ubuntu:16.04
    docker.io/library/ubuntu:16.04
    

    6.查看已经下载的镜像

    [root@master ~]# docker images
    

    在这里插入图片描述

    7.修改 apt 源

    7.1 备份一份apt源,防止丢失

    root@b426059fcd58:/# cp /etc/apt/sources.list /etc/apt/sources_init.list
    

    7.2 先删除就源文件,这个时候没有 vim 工具

    root@b426059fcd58:/# rm /etc/apt/sources.list
    

    7.3 使用 echo 命令将阿里源写入新文件

    root@b426059fcd58:/# echo " deb http://mirrors.aliyun.com/ubuntu/ xenial main
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
    > 
    > deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    > 
    > deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
    > deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    > 
    > deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
    > deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    > deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe" > /etc/apt/sources.list
    

    阿里源如下:

    deb http://mirrors.aliyun.com/ubuntu/ xenial main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
    
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
    
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    

    7.4 查看sources.list文件

    root@b426059fcd58:/# cat /etc/apt/sources.list
    

    在这里插入图片描述

    7.5 再使用 apt update 来更新

    root@b426059fcd58:/# apt update
    

    三、容器部署Java与Scala

    1.安装 jdk 1.8

    root@b426059fcd58:/# apt install openjdk-8-jdk
    

    测试一下安装结果

    root@b426059fcd58:/# java -version
    

    在这里插入图片描述

    2.安装 Scala

    root@b426059fcd58:/# apt install scala
    

    测试一下安装结果

    root@b426059fcd58:/# scala
    

    在这里插入图片描述

    四、容器部署Hadoop

    1.安装 vim,用来编辑文件

    root@b426059fcd58 :/# apt install vim
    

    2.安装 net-tools

    root@b426059fcd58 :/# apt install net-tools
    

    3.安装 SSH

    root@b426059fcd58 :/# apt-get install openssh-server
    

    4.安装 SSH 的客户端

    root@b426059fcd58 :/# apt-get install openssh-client
    root@b426059fcd58:/# cd ~
    root@b426059fcd58:~# ssh-keygen -t rsa -P "?
    

    5.启动 SSH 服务

    root@b426059fcd58:~# service ssh start
    

    在这里插入图片描述

    6.免密登录自己

    root@b426059fcd58:~# ssh 127.0.0.1
    

    7.设置自启SSH服务

    root@b426059fcd58:~# vim ~/.bashrc
    

    添加内容如下:

    service ssh start
    

    在这里插入图片描述

    7.安装 Hadoop

    7.1下载 Hadoop 的安装文件并传入docker

    [root@master software]# docker cp hadoop-3.2.0.tar.gz b426059fcd58:/opt/software
    

    在这里插入图片描述

    7.2解压到 /usr/local 目录下面并重命名文件夹

    root@b426059fcd58:# mkdir /opt/software
    root@b426059fcd58:/opt/software# tar -zxvf hadoop-3.2.0.tar.gz -C /usr/local/
    root@b426059fcd58:/opt/software# cd /usr/local/
    root@b426059fcd58:/usr/local# mv hadoop-3.2.0 hadoop
    

    7.3 配置profile 文件
    查看使用apt安装java的路径

    root@b426059fcd58:/usr/local# update-alternatives --config java
    root@b426059fcd58:/usr/local# vim /etc/profile
    

    将apt安装java的路径复制
    在这里插入图片描述

    将apt安装java的路径赋值给JAVA_HOME
    在这里插入图片描述

    添加内容如下:

    #java
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=${JAVA_HOME}/jre    
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
    export PATH=${JAVA_HOME}/bin:$PATH
    #hadoop
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_COMMON_HOME=$HADOOP_HOME 
    export HADOOP_HDFS_HOME=$HADOOP_HOME 
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME 
    export HADOOP_INSTALL=$HADOOP_HOME 
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
    export HADOOP_CONF_DIR=$HADOOP_HOME 
    export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec 
    export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
    export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
    export HDFS_DATANODE_USER=root
    export HDFS_DATANODE_SECURE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export HDFS_NAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    

    使环境变量生效

    root@b426059fcd58:/usr/local# source /etc/profile
    

    7.4在目录 /usr/local/hadoop/etc/hadoop 下修改hadoop配置文件

    需要修改的配置文件如下:
    在这里插入图片描述

    修改 hadoop-env.sh 文件

    root@b426059fcd58:/usr/local/hadoop/etc/hadoop# vim hadoop-env.sh
    

    添加内容如下:

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    

    在这里插入图片描述

    修改 core-site.xml

    root@b426059fcd58:/usr/local/hadoop/etc/hadoop# vim core-site.xml
    

    添加内容如下:

    <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://h01:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop3/hadoop/tmp</value>
        </property>
    </configuration>
    

    在这里插入图片描述

    修改 hdfs-site.xml

    root@b426059fcd58:/usr/local/hadoop/etc/hadoop# vim hdfs-site.xml
    

    添加内容如下:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/home/hadoop3/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.namenode.data.dir</name>
            <value>/home/hadoop3/hadoop/hdfs/data</value>
        </property>
    </configuration>
    

    在这里插入图片描述

    修改 mapred-site.xml

    root@b426059fcd58:/usr/local/hadoop/etc/hadoop# vim mapred-site.xml
    

    添加内容如下:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.application.classpath</name>
            <value>
                /usr/local/hadoop/etc/hadoop,
                /usr/local/hadoop/share/hadoop/common/*,
                /usr/local/hadoop/share/hadoop/common/lib/*,
                /usr/local/hadoop/share/hadoop/hdfs/*,
                /usr/local/hadoop/share/hadoop/hdfs/lib/*,
                /usr/local/hadoop/share/hadoop/mapreduce/*,
                /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
                /usr/local/hadoop/share/hadoop/yarn/*,
                /usr/local/hadoop/share/