栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

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

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

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

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

文章目录
    • Docker部署
      • 查询镜像
      • 获取镜像
      • 创建容器
      • 配置Java与SSH环境
    • Hadoop 的安装
      • 创建Hadoop单机容器

  下面就来看一下在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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号