一、 学习背景
这段时间,在导师和师兄的引导下,我开始学习分布式计算,而最基础的就是配置环境。总的来说,我要配置的有两个:docker(搬运工)和hadoop。
简单的说,docker技术本质上和VM一样,是将一个服务器拆分成多分给更多的应用使用;而hadoop体系有自己的一套资源管理系统,要解决的问题是多个服务器并行调度起来,当作一个服务器使用的问题。
**
二、 什么是docker
**
docker是一个开源项目,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在GitHub 上进行维护。
docker自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 DockerInc。Redhat 已经在其 RHEL6.5 中集中支持 docker;Google 也在其 PaaS 产品中广泛应用。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。docker的基础是 Linux 容器(LXC)等技术。
下面两幅图,可以比较并说明docker和传统虚拟化之间的异同:
传统虚拟化
docker
三、 centos7上安装docker环境
约98%的服务器,都是使用linux操作系统来运行的,这次学习也不例外,我们打算用centos7来进行docker的部署,也为之后的分布式计算学习做好准备。
centos7的安装这里再不赘述,具体可以参考https://www.jianshu.com/p/dcf61276efa9;
下面介绍在centos7上部署docker的步骤:
更新、安装需要更新的包 yum update
更新过程中,清理已经被更新的包
yum 更新完毕
执行命令:curl -sSL https://get.docker.com/ | sh
安装docker环境
安装完成(这里的warning指出新建一个用户对docker的影响,可以忽略)
启动docker服务:
测试docker安装是否完成:Dockerrun hello-world(解读:“Hello from Docker” 信号表明了你安装的docker已经可以正确运行)
查看docker版本,docker安装成功
Docker安装成功之后,安装Dockercompse
使用python-pip进行安装
首先检查centos7中有没有安装过python-pip包,命令如下:
pip -V
发现系统没有安装python-pip包
没有python-pip包就执行如下命令安装epel-release依赖:
yum -y install epel-release
安装成功
执行成功以后,接着执行如下命令安装python-pip:
yum -y install python-pip
安装python-pip成功
这里可能会遇到的问题:安装过程中,系统可能会尝试使用多个镜像源(7-9个),可以等待,等系统尝试到可以使用的镜像源即可。
对上步中安装好的pip组件进行升级,命令如下:
sudo pip install --upgrade pip
pip组件升级成功
再次执行如下命令,检查pip环境:
pip –V(注意,这里的V为大写)
pip的 版本为20.1.1
执行如下命令,安装Docker-Compose:
sudo pip install docker-compose
发现执行到最后报错如下
查阅了相关资料,找到了一个解决方案:输入pip install docker-compose --ignore-installed requests
最终,安装成功
**
四、 心得与收获
**
从一开始,我对docker和hadoop这两个概念是一无所知的,所以我查阅了不少的资料来了解这两个概念,并最终对这两个概念有了一个初步的认识。我在计算机方面的学习经验告诉我,对于这种新的概念,我们可以一边实验,一边学习并更加深入理解这些概念(做中学,学中做,螺旋形上升),而不是追求一次性就查阅大量资料去直接搞懂,这样效率比较低,当然这个方法是我自己的经验,不一定适用于别人。
这次的分布式计算,我也打算采用类似的学习方法,先初步了解docker和hadoop这两个东西的基本概念,更加深奥的专业知识咱先放一会,先把环境部署好,做一些入门的小实验,同时再配合查阅理论资料,对这两个概念或者对分布式计算的一些概念进行更进一步的理解,这样学习过程中遇到的问题也更少,学起来也更轻松,学的过程中也会有更多的正反馈让自己坚持下去。
这是我写的第一篇博客,欢迎交流v
**
五、 参考资料
**
https://www.jianshu.com/p/3bfa8d09bc8b
https://www.zhihu.com/question/28300645
https://www.jianshu.com/p/dcf61276efa9
https://www.jianshu.com/p/5afdf0fdd9f7
http://www.duozhishidai.com/article-12346-1.html
https://www.runoob.com/docker/docker-tutorial.html