本篇文章是基于Docker搭建大数据集群系列的开篇之作

主要内容

  1. docker搭建
  2. docker部署CentOS
  3. 容器免密钥通信
  4. 容器保存成镜像
  5. docker镜像发布

环境

  • Linux 7.6

一、Docker安装

安装工具包

yum install -y yum-utils 		#安装工具包,缺少这些依赖将无法完成```
### 设置远程仓库
```bash
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo```
### 安装
```bash
yum install docker-ce```
### 启动
```bash
systemctl start docker```
### 查看版本
```bash
docker version```
### 校验
```bash
docker run hello-world```
## 二、docker部署CentOS
### 拉取镜像
```bash
docker pull centos```
### 查看是否拉取成功
```bash
docker imsages```
### 设置docker网桥,用于分配固定IP
```bash
docker network create --subnet=172.15.0.0/16 netgroup```
### 创建容器
> --name 容器名称
> -h 容器主机名
> --net 设置网桥
> --ip 指定容器IP **master**

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-master -h cluster-master --net netgroup --ip 172.15.0.2 centos /usr/sbin/init

**slave1**

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave1-h cluster-slave1--net netgroup --ip 172.15.0.3 centos /usr/sbin/init

**slave2**

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave2-h cluster-slave2--net netgroup --ip 172.15.0.4 centos /usr/sbin/init

**slave3**

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave3-h cluster-slave3--net netgroup --ip 172.15.0.5 centos /usr/sbin/init

### 查看运行中的容器
```bash
docker ps```
### 查看所有容器,包括未运行的容器
```bash
docker pa -a```
### 运行容器
```bash
docker run 容器名或容器ID```
### 进入容器
```bash
docker run exec -ti 容器名或容器ID bash```
### 配置hosts文件
```bash
#安装VIM编辑工具
yum install vim
vim /etc/hosts
#追加以下内容
172.15.0.2 cluster-master
172.15.0.3 cluster-slave1
172.15.0.4 cluster-slave2
172.15.0.5 cluster-slave3
#将配置文件发送到其它节点
scp /etc/hosts cluster-slave1:/etc/
scp /etc/hosts cluster-slave2:/etc/
scp /etc/hosts cluster-slave3:/etc/

三、容器免密钥通信

更换阿里YUM源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

部署OpenSSH

yum -y install openssh openssh-server openssh-clients
systemctl start sshd

生成密钥

敲出下面命令后连续回车三次

ssh-keygen -t rsa```

### 设置用户密码
```bash
passwd root```
### 公钥分发
> 在所有结点都生成密钥之后再进行这步 **master**
``` bash
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave3

slave1

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave3

slave2

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave3

slave3

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cluster-slave3

测试免密钥

第一次敲下面命令时,会向你询问,直接打 yes,然后输入对应主机的访问密码

第二次敲ssh命令时,应当直接能够访问,无需输入密码

退出当前用户使用命令 exit

master

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1

slave1

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1

slave2

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1

slave3

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1

四、容器保存成镜像

docker commit -m '提交文字说明' -a '作者' 容器名   提交后的镜像名:提交后的镜像tag名

五、镜像推送到远程仓库

新建账号

https://hub.docker.com/

创建一个镜像仓库

给需要推送的镜像打标签

docker tag  镜像id  要推入的仓库的用户名/要推入的仓库名:新定义的tag

推送镜像到仓库

docker push 要推入的仓库的用户名/要推入的仓库名:镜像标签

基于Docker搭建大数据集群(一)Docker环境部署的更多相关文章

  1. 基于Docker搭建大数据集群(六)Hive搭建

    基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spar ...

  2. 基于Docker搭建大数据集群(七)Hbase部署

    基于Docker搭建大数据集群(七)Hbase搭建 一.安装包准备 Hbase官网下载 微云下载 | 在 tar 目录下 二.版本兼容 三.角色分配 节点 Master Regionserver cl ...

  3. Docker搭建大数据集群 Hadoop Spark HBase Hive Zookeeper Scala

    Docker搭建大数据集群 给出一个完全分布式hadoop+spark集群搭建完整文档,从环境准备(包括机器名,ip映射步骤,ssh免密,Java等)开始,包括zookeeper,hadoop,hiv ...

  4. 基于Docker搭建大数据集群(二)基础组件配置

    主要内容 jdk环境搭建 scala环境搭建 zookeeper部署 mysql部署 前提 docker容器之间能免密钥登录 yum源更换为阿里源 安装包 微云分享 | tar包目录下 JDK 1.8 ...

  5. 基于Docker搭建大数据集群(三)Hadoop部署

    主要内容 Hadoop安装 前提 zookeeper正常使用 JAVA_HOME环境变量 安装包 微云下载 | tar包目录下 Hadoop 2.7.7 角色划分 角色分配 NN DN SNN clu ...

  6. 基于Docker搭建大数据集群(五)Mlsql部署

    主要内容 mlsql部署 前提 zookeeper正常使用 spark正常使用 hadoop正常使用 安装包 微云下载 | tar包目录下 mlsql-cluster-2.4_2.11-1.4.0.t ...

  7. 基于Docker搭建大数据集群(四)Spark部署

    主要内容 spark部署 前提 zookeeper正常使用 JAVA_HOME环境变量 HADOOP_HOME环境变量 安装包 微云下载 | tar包目录下 Spark2.4.4 一.环境准备 上传到 ...

  8. 关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)

    写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和clo ...

  9. CDH搭建大数据集群(5.10.0)

    纠结了好久,还是花钱了3个4核8G的阿里云主机,且行且珍惜,想必手动搭建过Hadoop集群的完全分布式.HBase的完全分布式的你(当然包括我,哈哈),一定会抱怨如此多的配置,而此时CDH正是解决我们 ...

随机推荐

  1. Leetcode之回溯法专题-90. 子集 II(Subsets II)

    Leetcode之回溯法专题-90. 子集 II(Subsets II) 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入 ...

  2. 防盗链测试01 - Jwplayer+Tengine2.3.1 mp4模块打造流媒体测试服务器

    最近有个想法,想做类似下面的视频URL验证: 1.URL Tag Validation 2.Special format of URL for preventing unauthorized usag ...

  3. 老司机也晕车--java字符串String晕车之旅

    首先声明,有晕车经历的司机请自备药物,String也可能让你怀疑人生! 第一道 开胃菜 请听题!第一道题: String hello="hello world!"; String ...

  4. mysql类似oracle rownum写法

    rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等 mysql取第一条数据写法 SELECT * FROM t order by ...

  5. 2019nc#2

    A Eddy Walker 题意 你有n个点(0-n-1),按顺序形成一个环,初始时你在0的位子,你随机顺时针走一步或者逆时针走一步, 一旦你走到一个点后,环上所有点都被经过至少一次后,你就必须停下来 ...

  6. POJ-1062 昂贵的聘礼 (最短路)

    POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...

  7. 1026-windy数+数位DP+记忆化搜索

    1026: [SCOI2009]windy数 题意:数位DP模板题: 目前只理解了记忆化搜索,就想练练手, ------给递推写法留一个位子 ------ 注意这道题要判断前导0的情况,1 )可以加一 ...

  8. HDU 6364 Ringland

    Ringland 题意: 在一个环上有n个男生, n个女生, 现在要求每一个男生与女生配对, 求总代价最小. 题解: 如果2个男生到女生的路交叉了, 那么我们交换这2个男生的路, 总代价是一定会变得小 ...

  9. CodeForces 1082 G Petya and Graph 最大权闭合子图。

    题目传送门 题意:现在有一个图,选择一条边,会把边的2个顶点也选起来,最后会的到一个边的集合 和一个点的集合 , 求边的集合 - 点的集合最大是多少. 题解:裸的最大权闭合子图. 代码: #inclu ...

  10. Java 网络编程:必知必会的 URL 和 URLConnection

    java.net.URL 类将 URL 地址进行了封装,并提供了解析 URL 地址的基本方法,比如获取 URL 的主机名和端口号.java.net.URLConnection 则代表了应用程序和 UR ...