基于Docker搭建大数据集群(一)Docker环境部署

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

主要内容

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

环境

  • Linux 7.6

一、Docker安装

安装工具包

bash 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

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源bash
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
### 部署OpenSSHbash
yum -y install openssh openssh-server openssh-clients
systemctl start sshd
```

生成密钥

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

bash ssh-keygen -t rsa

设置用户密码

bash passwd root

公钥分发

在所有结点都生成密钥之后再进行这步

master

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 要推入的仓库的用户名/要推入的仓库名:镜像标签

原文地址:https://www.cnblogs.com/njpkhuan/p/11611966.html

时间: 2024-10-20 02:37:49

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

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

基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spark做解析引擎的,存储还是用的HDFS 我是在docker里面搭建的集群,所以都是基于docker操作的 一.安装包准备 Hive官网下载 微云下载 | 在 tar 目录下 二.版本兼容 我使用的相关软件版本 Hadoop ~ 2.7.7 Spark ~ 2.4.4 JDK ~ 1.8.0_221 S

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

基于Docker搭建大数据集群(七)Hbase搭建 一.安装包准备 Hbase官网下载 微云下载 | 在 tar 目录下 二.版本兼容 三.角色分配 节点 Master Regionserver cluster-master yes no cluster-slave1 backup yes cluster-slave2 no yes cluster-slave3 no yes 四.配置修改 hbase-env.sh export JAVA_HOME=/opt/jdk/jdk1.8.0_221 h

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

主要内容 Hadoop安装 前提 zookeeper正常使用 JAVA_HOME环境变量 安装包 微云下载 | tar包目录下 Hadoop 2.7.7 角色划分 角色分配 NN DN SNN cluster-master 是 否 否 cluster-slave1 否 是 是 cluster-slave1 否 是 否 cluster-slave1 否 是 否 一.环境准备 上传到docker镜像 docker cp hadoop-2.7.7.tar.gz cluster-master:/root

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

主要内容 jdk环境搭建 scala环境搭建 zookeeper部署 mysql部署 前提 docker容器之间能免密钥登录 yum源更换为阿里源 安装包 微云分享 | tar包目录下 JDK 1.8.221 Scala 2.12.9 Zookeeper 3.5.5 Mysql 手动安装较复杂,使用yum安装 一.安装包处理 发送文件到容器 docker cp 文件地址 容器ID:容器地址 创建解压目录 mkdir /opt/jdk mkdir /opt/scala mkdir /opt/zoo

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

主要内容 mlsql部署 前提 zookeeper正常使用 spark正常使用 hadoop正常使用 安装包 微云下载 | tar包目录下 mlsql-cluster-2.4_2.11-1.4.0.tar.gz mlsql-console-1.4.0.tar.gz mlsql-engine_2.4-1.4.0.tar.gz 一.环境准备 上传到docker镜像 docker cp mlsql-cluster-2.4_2.11-1.4.0.tar.gz cluster-master:/root/t

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

主要内容 spark部署 前提 zookeeper正常使用 JAVA_HOME环境变量 HADOOP_HOME环境变量 安装包 微云下载 | tar包目录下 Spark2.4.4 一.环境准备 上传到docker镜像 docker cp spark-2.4.4-bin-hadoop2.7.tar.gz cluster-master:/root/tar 解压 tar xivf spark-2.4.4-bin-hadoop2.7.tar.gz -C /opt/hadoop 二.配置文件 spark-

CDH搭建大数据集群

需要的软件包: flume-ng-1.5.0-cdh5.3.6.tar.gz hadoop-2.5.0-cdh5.3.6.tar.gz hive-0.13.1-cdh5.3.6.tar.gz kafka_2.9.2-0.8.1.tgz scala-2.11.4.tgz slf4j-1.7.6.zip spark-1.5.1-bin-hadoop2.4.tgz zookeeper-3.4.5-cdh5.3.6.tar.gz 安装hadoop包: 1.使用课程提供的hadoop-2.5.0-cdh5

基于hortonworks的大数据集群环境部署流水

一.ambari及HDP安装文件下载地址: 1.系统 操作系统:CentOS7 2.软件 本次安装采用最新版本: ambari-2.7.0.0 hdp-3.0.0.0 详细信息及下载地址如下: Ambari 2.7.0 Repositories Base URL :http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.0.0 Repo File :http://public-repo-1.hortonworks.c

docker 搭建zookeeper集群和kafka集群

docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker appl