大数据-如何在Docker上使用Hadoop

导语
  由于Hadoop是为集群而设计的软件,所以在学习和使用的过程中难免会遇到在多台机器上配置Hadoop的情况,这个对于初学者来说会造成很多的障碍。主要的障碍有两个;

  • 昂贵的计算机集群。多个计算机构成的集群环境需要昂贵的硬件。
  • 难以部署和维护。在众多的机器上都要部署相同的软件环境是一个比较大的工程量。而且比较不灵活,需要修改的话很多的内容都需要修改。

  为了解决这个问题,现在有一个比较成熟的解决方案就是使用Docker。

  Docker 是一个容器管理系统,他可以向虚拟机一样运行多个虚拟机容器,并且构成一个集群。因为虚拟机会完整的虚拟出一个计算机来。所以会消耗大量的硬件的资源。而Docker提供了一个独立的、可复制的运行环境,实际上容器中所有进程依然在主机的内核中被执行。所以它的运行效果几乎与在内存中运行效果是一样的。对于Docker的内容在后续的分享中博主会分享到。

  下面就来看一下在Docker中如何对Hadoop进行部署

Docker部署

  进入进入到Docker命令行之后,首先需要拉取一个Linux的作为Hadoop的运行环境。这里需要说明的是推荐使用CentOS 作为运行环境

查询镜像

  首先执行如下的命令查询对应的镜像内容

docker search centos

  执行完成之后会看到如下的内容,第一个stars是最多的也就是说被人使用的次数是最多的一个CentOS的镜像。我们就选择这个作为对应的运行环境的镜像

在这里插入图片描述

获取镜像

  利用上面的命令查询到对应的镜像之后,接下来的事情就是要获取对应的镜像内容。可以使用如下的命令来拉取镜像

docker pull centos

在这里插入图片描述
  拉取完成之后可以使用docker images 命令来查看对应的下载完成的镜像。接下来就是需要运行容器镜像了。

创建容器

  镜像拉取完成之后,使用如下的命令来创建一个容器

docker run -d centos:8 /usr/sbin/init

在这里插入图片描述
  使用 docker ps 查看容器运行期情况;

在这里插入图片描述

  可以让容器输出一点东西,使用如下的命令

docker exec 182010411d12 echo "Hello World!"

在这里插入图片描述

配置Java与SSH环境

  首先创建一个容器,名称是java_ssh_proto, 用于配置一个包含Java和SSH的环境。

  需要停止之前运行的容器,使用 docker stop + 容器ID的方式。
在这里插入图片描述

创建一个容器

docker run -d --name=java_ssh_proto --privileged centos:8 /usr/sbin/init

在这里插入图片描述

进入到容器中

docker exec -it java_ssh_proto bash

在这里插入图片描述

配置镜像的yum源

sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-Linux-AppStream.repo \
         /etc/yum.repos.d/CentOS-Linux-BaseOS.repo \
         /etc/yum.repos.d/CentOS-Linux-Extras.repo \
         /etc/yum.repos.d/CentOS-Linux-PowerTools.repo \
         /etc/yum.repos.d/CentOS-Linux-Plus.repo

yum makecache          

  结果如下

在这里插入图片描述

安装 Open JDK和SSH服务

yum install -y java-1.8.0-openjdk-devel openssh-clients openssh-server

在这里插入图片描述
Java环境测试
在这里插入图片描述
启动SSH服务

systemctl enable sshd && systemctl start sshd

  到此为止,如果没有出现任何的故障,一个包含Java运行环境和SSH环境的容器就被创建好了,这个是一个非常关键的容器,建议首先在容器中exit命令退出,然后运行如下的两条命令,并且保存一个名为java_ssh的镜像:

docker stop java_ssh_proto
docker commit java_ssh_proto java_ssh

在这里插入图片描述

Hadoop 的安装

Hadoop 官网地址:http://hadoop.apache.org/
Hadoop 发行版本下载:https://hadoop.apache.org/releases.html

创建Hadoop单机容器

  以上面保存好的java_ssh镜像创建容器hadoop_single;

docker run -d --name=hadoop_single --privileged java_ssh /usr/sbin/init

  将下载好的hadoop压缩包拷贝的容器中的 /root 目录下;

docker cp <你存放hadoop压缩包的路径> hadoop_single:/root/

   进入容器

docker exec -it hadoop_single bash

   进入到root目录

cd /root

  解压刚刚拷贝过来的内容

tar -zxvf hadoop-3.3.1.tar.gz

  解压之后将其拷贝到一个比较常用的地方

mv hadoop-3.3.1 /usr/local/hadoop

  配置响应的环境变量

echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/bashrc
echo "export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >> /etc/bashrc 

  然后退出 docker 容器并重新进入。

echo "export JAVA_HOME=/usr" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
echo "export HADOOP_HOME=/usr/local/hadoop" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh

  这两步配置了 hadoop 内置的环境变量,然后执行以下命令判断是否成功:

hadoop version

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值