最近想用hadoop做一个测试,与性能无关的测试,但是可与屌丝的命,手头没有太多机器,也租不起云主机。这里使用docker进行虚拟化,并搭建hadoop集群,在这里将过程记录如下。

  首先安装docker,这里不作详细介绍,sudo apt-get install docker;安装完成之后,我们可以发现在ifconfig中多处了一项docker0,其实这就是docker基于linux的namespace创建的一个虚拟网桥,用于承接我们虚拟机到主机之间的网络。

  第一: 我们还是应该明白一些基础的知识,否则只是简单的操作的话,似乎没什么太大的意思了。首先介绍两个概念,镜像,容器。什么是镜像,其实和大家装系统的时候使用的镜像是一个意思,就是经过打包的系统文件。docker有专门的仓库来存储这些镜像,我们可以通过docker search <key>来查询我们所需要的镜像文件。例如: docker search ubuntu。什么是容器,顾名思义,容易就是用来承载东西的,我们就讲我们下载的镜像放到容器中进行执行的。

  第二: 下载镜像文件,如第一中说的,我们下载原生的ubuntu,这里我们可以发现原生的ubuntu就130M。

  第三: 我们使用命令docker run  来将系统运行起来,这个过程其实就是从镜像到容器的过程,这里有几个参数我们需要注意一下,

     -h:   指定容器的hostname,给容器指定的hostname是相当合理的一个操作,否则ssh的时候你就要每次去找一长串hostname了。

     -u: 指定运行的user,但是初始的时候应该只有root,现在可以忽略。

     -w: 指定user的work path ,同上,现在可忽略。

     --name:  指定容器的名字,这里也挺便捷的,否则我们就只能使用容器id来运行了。

    但是进去之后我们发现,集成的命令少之又少,就连vi都没有。没办法装吧,vim,sudo,ssh......好多。装完之后我们需要为系统创建用户useradd --help,各位好好看看吧。然后在user path下创建hadoop文件夹并下载hadoop到文件夹。

  第四: 以上操作都完成了,想必大家现在不想再讲1-3的操作再重复一遍了吧?那么我们就需要了解另一个知识点,打包: 这里的含义是将我们的容器打包为镜像,命令伪docker commit  <容器id> <镜像name>  。完成之后我们发现docker ps -a命令下多出了一项,3.0G!!!!!!!

  第五:   使用我们自己的镜像文件创建容器,这一步我们就可以使用第三中使用到的命令了。给出一个完整的例子:docker run -it  -h hadoop_namenode -u libo -w /home/libo --name hadoop_namenode hadoop_ubuntu。这样我们就依赖hadoop_ubuntu创建了一个名为hadoop_namenode的虚拟机。至于需要几个虚拟机,有你自己决定。

  第五: 本来这一点不打算做介绍的,但是这里还是说一下,就是在ssh传递公钥文件的时候总是出现connection refused!这个错误,当时就觉得应该是ssh服务的问题,然后ps -aux|grep "ssh" ,果真没有。我们需要启动ssh服务: sudo /etc/init.d/ssh start来启动。

  第六: 接下来的操作就是对hadoop的配置了,这一节我们会抽时间再写一篇进行记录。

基于docker虚拟化创建hadoop集群的更多相关文章

  1. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  2. 基于docker快速搭建hbase集群

    一.概述 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigt ...

  3. 基于docker的spark-hadoop分布式集群之一: 环境搭建

    一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...

  4. 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (7)

    接下来,我们开启hadoop集群. 如果之前打开过Hadoop,可能会发生lock的问题,解决方案:http://blog.csdn.net/caoshichaocaoshichao/article/ ...

  5. Docker 下部署hadoop集群

    一.主机规划 3台主机:1个master.2个slaver/worker ip地址使用docker默认的分配地址: master: 主机名: hadoop2.ip地址: 172.17.0.2 slav ...

  6. 喵星之旅-狂奔的兔子-基于docker的redis分布式集群

    一.docker安装(略) 二.下载redis安装包(redis-4.0.8.tar.gz) 以任何方式获取都可以.自行官网下载. 三.拉取centos7的docker镜像 命令:docker pul ...

  7. 基于Docker UI 配置ceph集群

    前言 前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署Ceph的管理平台,这是因为OS的 ...

  8. 基于Docker方式实现Elasticsearch集群

    采用docker容器,搭建两个es集群,可根据步骤自行扩展n+集群 1.创建es挂载目录 cd /usr/localmkdir -p es/config 2.创建es存放数据目录 cd esmkdir ...

  9. 搭建基于docker 的redis分布式集群在docker for windows

    https://blog.csdn.net/xielinrui123/article/details/85104446 首先在docker中下载使用 docker pull redis:3.0.7do ...

随机推荐

  1. BZOJ2141:排队

    浅谈分块:https://www.cnblogs.com/AKMer/p/10369816.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?i ...

  2. 蓝桥杯 算法训练 ALGO-145 4-1打印下述图形

     算法训练 4-1打印下述图形   时间限制:1.0s   内存限制:256.0MB 问题描述 使用循环结构打印下述图形,打印行数n由用户输入.打印空格时使用"%s"格式,向pri ...

  3. PV 和 UV IP

    PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面.这里 ...

  4. 杂项:MIME(多用途互联网邮件扩展类型)百科

    ylbtech-杂项:MIME(多用途互联网邮件扩展类型)百科 MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用 ...

  5. DCloud-MUI:杂项

    ylbtech-DCloud-MUI:杂项 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回 ...

  6. 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...

  7. Drools学习笔记1—规则文件

    Facts(即普通的POJO) 指普通业务对象插入到Workingmemory后的对象规则可以对fact对象进行任意的对象操作是规则与应用系统交换的桥梁返回FactHandler对象,是插入到Work ...

  8. cron job error : c queue max run limit reached

    在cron job的日志中发现以下报错: ! c queue max run limit reached Wed Aug 28 12:56:00 2013 ! rescheduling a cron ...

  9. 11-24网页基础--Js基础语法

    1.运算符 比较运算符(7种):==/===/!=/>/</<=/>= ===(全等于) 2.字符串substring的用法 3.练习题:累加求和(运用Js的方法) 4.进制转 ...

  10. LinearLayout线性布局搭配权重属性的使用

    在开发中,我们是通过布局来完成应用界面的搭配的,通过各种布局,我们可以完成各种复杂的界面设计.而LinearLayout也就是我们说的线性布局,这个比较简单而且使用很广泛的一种布局.下面我们通过一个D ...