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

大数据-如何在Docker上使用Hadoop,第1张

大数据-如何在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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5680594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存