基于docker虚拟化创建hadoop集群
最近想用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集群的更多相关文章
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- 基于docker快速搭建hbase集群
一.概述 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigt ...
- 基于docker的spark-hadoop分布式集群之一: 环境搭建
一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (7)
接下来,我们开启hadoop集群. 如果之前打开过Hadoop,可能会发生lock的问题,解决方案:http://blog.csdn.net/caoshichaocaoshichao/article/ ...
- Docker 下部署hadoop集群
一.主机规划 3台主机:1个master.2个slaver/worker ip地址使用docker默认的分配地址: master: 主机名: hadoop2.ip地址: 172.17.0.2 slav ...
- 喵星之旅-狂奔的兔子-基于docker的redis分布式集群
一.docker安装(略) 二.下载redis安装包(redis-4.0.8.tar.gz) 以任何方式获取都可以.自行官网下载. 三.拉取centos7的docker镜像 命令:docker pul ...
- 基于Docker UI 配置ceph集群
前言 前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署Ceph的管理平台,这是因为OS的 ...
- 基于Docker方式实现Elasticsearch集群
采用docker容器,搭建两个es集群,可根据步骤自行扩展n+集群 1.创建es挂载目录 cd /usr/localmkdir -p es/config 2.创建es存放数据目录 cd esmkdir ...
- 搭建基于docker 的redis分布式集群在docker for windows
https://blog.csdn.net/xielinrui123/article/details/85104446 首先在docker中下载使用 docker pull redis:3.0.7do ...
随机推荐
- nginx之 nginx-1.9.7 编译安装、理论简介
nginx是一个web网站常用的高性能http和反向代理服务器,其具有较好的并发能力,被网易.百度.腾讯.新浪等网站广泛使用. 一. 理论简介 1.首先弄清楚正向代理和反向代理 正向代理:代理客户端, ...
- 一段shallowCopy和deepCopy的认识
:什么是浅拷贝(shallow copy)和深拷贝(deep copy)? A: 浅拷贝就是成员数据之间的一一赋值:把值一一赋给要拷贝的值.但是可能会有这样的情况:对象还包含资源,这里的资源可以值堆资 ...
- IEEE1588精密网络同步协议(PTP)
1 引言 以太网技术由于其开放性好.价格低廉和使用方便等特点,已经广泛应用于电信级别的网络中,以太网的数据传输速度也从早期的10M提高到100M,GE,10GE.40GE,100GE正式产品也于20 ...
- Azure CLI脚本查看未挂载的ManagedDisk
本文介绍如何用Azure CLI的脚本查看未挂载的Managed Disk,以及Managed Disk挂载到哪些资源. 具体的脚本如下: #!/bin/bash rm -rf noownerdisk ...
- 前端HTML5介绍
1.为什么学习HTML5? 跨平台要求低 硬件要求低 flash之外的选择(尤其手机端) 2什么是HTML5? HTML是用来描述网页的一种语言 HTML指超文本标记语言 HTML不是变成语言,是一种 ...
- Python:常用正则表达式(一)
文章转载于:http://www.cnblogs.com/Akeke/(博主:Akeke) https://www.cnblogs.com/Akeke/p/6649589.html (基于JavaSc ...
- java中I/O类
总结:输入流/输出流 方法,变量: package com.aini; //流类.输入输出流 import java.io.*; public class rtyeew {// (File file) ...
- 转:利用UDEV服务解决RAC ASM存储设备名
利用UDEV服务解决RAC ASM存储设备名 好文转载,链接:http://www.askmaclean.com/archives/utilize-udev-resolve-11gr2-rac-asm ...
- 第十章 Executor框架
在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...
- Eclipse: “The import java.io cannot be resolved”
检查一下选项: 重点看jdk的绑定 43down voteaccepted Check your Eclipse preferences: Java -> Installed JREs. The ...