基于CentOS7利用docker搭建hadoop环境

一、 任务目标

在之前已经安装好的CentOS虚拟机上,在Docker上,安装hadoop。

二、 什么是hadoop

简单的说,Docker技术本质上和VM一样,是将一个服务器拆分成多分给更多的应用使用;而hadoop体系有自己的一套资源管理系统,要解决的问题是多个服务器并行调度起来,当作一个服务器使用的问题。
在我的虚拟机上安装了docker后,可以将我的虚拟机计算资源拆分成多个互相独立的计算资源;在安装了hadoop后,就可以利用其将拆分的这些计算资源并行调度起来,这样就可以在本地模拟分布式计算了。

三、 CentOS的Docker基础上安装hadoop

service docker start启动docker
在这里插入图片描述

下载最新版本Docker官方的CentOS,目前是7.5
在这里插入图片描述
在这里插入图片描述

构建一个hadoop的基础镜像,使用dockerfile文件方式进行构建:
构建一个具备ssh功能的镜像,方便后期使用。(但是这样对于容器的安全性会有影响),命令如下:
Mkdir centos-ssh-root
Cd centos-ssh-root
Vi Dockerfile
构建命令:docker build -t“crxy/centos-ssh-root” .
(注意最后要加个点“.”)
基于CentOS7利用docker搭建hadoop环境_第1张图片

查询刚才构建成功的镜像
在这里插入图片描述

接下来,基于这个镜像再构建一个带有jdk的镜像,首先要卸载系统自带的jdk,安装一个新的jdk
输入 java –version,发现系统自带openJDK
在这里插入图片描述

因为系统自带的openJDK是最简单的版本,并不能满足我们的hadoop镜像构建,所以卸载系统自带的openJDK,重新下载安装JDK
基于CentOS7利用docker搭建hadoop环境_第2张图片
在这里插入图片描述

卸载系统自带的openJDK成功
在这里插入图片描述

安装新的JDK:
安装新的JDK,我花了整整两天的时间,尝试了多种方法,安装是成功了,但是并不能为后续的镜像构建做好准备,下面,我将具体阐述我在安装新的JDK过程中遇到的问题及我的解决思路。

  1. 在卸载了原始openJDK后,我先是直接用yum指令,下载并安装了JDK1.8,但这与网上的教程不符,网上所有的搭建hadoop教程,都是基于JDK压缩包来进行的,比如jdk-7u75-linux-x64.tar.gz,而我并没有找到不用压缩包的解决方法。

  2. 在发现了上述问题后,我通过学习wget指令,在虚拟机中,直接用命令行的方式,对JDK压缩包进行下载,但尝试了多个不同的网页,发现下载下来的文件大小都为5KB左右,这显然与正常的JDK压缩包大小不符,通过wget命令下载的非正常JDK压缩包如下图所示:
    基于CentOS7利用docker搭建hadoop环境_第3张图片
    基于CentOS7利用docker搭建hadoop环境_第4张图片

  3. 在遇到2中的问题后,我又查了相关资料(https://blog.csdn.net/lushuai09/article/details/47946311?utm_source=blogxgwz0),总算是解决了文件大小异常的问题。但是我通过指令tar -zxvf jdk-8u144-linux-x64.tar.gz来解压此文件时,报错了,报错如下图所示:
    基于CentOS7利用docker搭建hadoop环境_第5张图片

在查阅了相关资料后,判定这个报错的原因是下载的压缩包不完整造成的(https://blog.csdn.net/Qevery678/article/details/94391782),资料如下图所示:
基于CentOS7利用docker搭建hadoop环境_第6张图片

所以现在问题又回到了下载的压缩包有问题上面。

  1. 遇到3中所述的问题后,我通过指令yum groupinstall “GNOME Desktop” “Graphical Administration Tools” 安装了CentOS7的图形界面,打算通过图形界面的浏览器,下载JDK压缩包,然后进行后续操作。
    基于CentOS7利用docker搭建hadoop环境_第7张图片

然而自带的Firefox不能访问外网(终端可以ping通外网),这个问题我查了很多资料,也没有解决…

  1. 在遇到4中的问题后,我打算从windows宿主机上面先通过网页下载JDK压缩包,再将windows中的压缩包拖入虚拟机中。下图所示为拖入成功:
    基于CentOS7利用docker搭建hadoop环境_第8张图片

但是当我继续从命令行中执行指令tar -zxvf jdk-8u144-linux-x64.tar.gz来解压此JDK压缩包时,又报了错:
zip: stdin: unexpected end of file
tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now
在查阅了资料后(https://blog.csdn.net/weixin_44510615/article/details/104336295),说是不能直接把文件从宿主机拖到虚拟机,而是要用xftp或者复制粘贴的方式。我选择了后者,后者需要安装vmware tools,但是我的虚拟机“重新安装vmware tools”按钮是灰色:
基于CentOS7利用docker搭建hadoop环境_第9张图片

这就导致我的文件无法从宿主机直接复制粘贴到虚拟机。
6. 现在开始解决“重新安装vmware tools”按钮是灰色的问题。此问题还没有解决,网上关于这个问题的资料虽然不少,但很多都没用。
后续计划:在成功解压JDK压缩包后,继续按照网上的教程(https://blog.csdn.net/xu470438000/article/details/50512442),对hadoop进行部署。

四、 心得与收获

这次实验的主要操作对象是CentOS7,而我的linux功底不是很扎实,之前使用linux的机会也比较少,在安装hadoop的过程中,我逐渐意识到我的linux功底还有很多需要加强,有很多指令和linux的常识需要学习和记忆,否则遇到一个没见过的指令,就网上查,这样不仅比较费时间,而且不能让我专注于实验的基本思路。
通过这次试验,我逐渐体会到了博客的意义。它不一定是一个完美的成品,而是一个学习过程的记录,就像我这次的实验,过程中遇到了非常多的问题,而且一个问题的解决又导致了另外的问题,这就要求我必须通过文档的方式来记录这些问题的嵌套结构,这样才可以让我知道我现在在哪,不至于让我在解决一个问题时,忘记原来的问题,也忘记原来的实验进程。我把这些问题记录下来,写进博客,在将来回看时,也是一个不错的复习,就像高中时建立的错题本,可以把遇到的问题都重温一遍,这样可以让我对系统的理解更加深刻。

五、参考资料

https://www.cnblogs.com/sxdcgaq8080/p/7487369.html
https://my.oschina.net/shuangquan/blog/1515217
https://baijiahao.baidu.com/s?id=1658612722796903841&wfr=spider&for=pc
https://blog.csdn.net/zt15732625878/article/details/84990572
https://baijiahao.baidu.com/s?id=1658612722796903841&wfr=spider&for=pc
https://www.jb51.net/article/143156.htm
https://blog.csdn.net/Qevery678/article/details/94391782
https://www.jb51.net/LINUXjishu/348664.html
https://blog.csdn.net/weixin_37352094/article/details/80372821
https://www.cnblogs.com/ftl1012/p/9265699.html

你可能感兴趣的:(linux,docker,hadoop)