马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.前期预备
(1)把docker,docker-compose,kafka集群安装配置好
参考文章:
使用docker搭建kafka集群并且进行相应的实践-CSDN博客
这篇文章里面有别的两篇文章的链接,点进去就可以或许看到
(2)最好把Finalshell也下载好,具体下载教程详见如下文章:
保姆级教程下载finalshell以及连接云服务器基础的使用教程_finalshell下载安装-CSDN博客
(3)最好把docker的镜像源换一下
- vi /etc/docker/daemon.json
复制代码 把里面原来的镜像源全部删掉,换成下面的镜像源(何驰给我的)
- {
- "registry-mirrors": [
- "http://hub-mirror.c.163.com",
- "https://mirror.ccs.tencentyun.com",
- "https://docker-proxy.741001.xyz",
- "https://registry.docker-cn.com"
- ]
- }
复制代码 生存并且退出,查看一下
- [root@node1 ~]# docker info
- Client: Docker Engine - Community
- Version: 26.1.4
- Context: default
- Debug Mode: false
- Plugins:
- buildx: Docker Buildx (Docker Inc.)
- Version: v0.14.1
- Path: /usr/libexec/docker/cli-plugins/docker-buildx
- compose: Docker Compose (Docker Inc.)
- Version: v2.27.1
- Path: /usr/libexec/docker/cli-plugins/docker-compose
- Server:
- Containers: 3
- Running: 0
- Paused: 0
- Stopped: 3
- Images: 2
- Server Version: 26.1.4
- Storage Driver: overlay2
- Backing Filesystem: xfs
- Supports d_type: true
- Using metacopy: false
- Native Overlay Diff: true
- userxattr: false
- Logging Driver: json-file
- Cgroup Driver: cgroupfs
- Cgroup Version: 1
- Plugins:
- Volume: local
- Network: bridge host ipvlan macvlan null overlay
- Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
- Swarm: inactive
- Runtimes: io.containerd.runc.v2 runc
- Default Runtime: runc
- Init Binary: docker-init
- containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
- runc version: v1.1.12-0-g51d5e94
- init version: de40ad0
- Security Options:
- seccomp
- Profile: builtin
- Kernel Version: 3.10.0-1160.el7.x86_64
- Operating System: CentOS Linux 7 (Core)
- OSType: linux
- Architecture: x86_64
- CPUs: 1
- Total Memory: 3.682GiB
- Name: node1
- ID: eb6f4510-9e84-4973-aad6-39e9ecce6034
- Docker Root Dir: /var/lib/docker
- Debug Mode: false
- Experimental: false
- Insecure Registries:
- 127.0.0.0/8
- Registry Mirrors:
- http://hub-mirror.c.163.com/
- https://mirror.ccs.tencentyun.com/
- https://docker-proxy.741001.xyz/
- https://registry.docker-cn.com/
- Live Restore Enabled: false
复制代码
2.使用docker-compose配置flink集群 (一直在node1的root用户下进行)
(1)编写flink.yml文件,输入以下代码
- mkdir -p /export/server
- cd /export/server
- vi flink.yml
复制代码 添加以下内容
- version: '3'
- services:
- jobmanager:
- image: flink:latest
- container_name: jobmanager
- hostname: jobmanager
- ports:
- - "8081:8081"
- command: jobmanager
- environment:
- - JOB_MANAGER_RPC_ADDRESS=jobmanager
- networks:
- - flink_network
- taskmanager:
- image: flink:latest
- depends_on:
- - jobmanager
- ports:
- - "8082-8084:8081" # 确保端口范围足够
- command: taskmanager
- scale: 3 # 设置TaskManager的数量为3
- environment:
- - JOB_MANAGER_RPC_ADDRESS=jobmanager
- networks:
- - flink_network
- networks: #注意这里,要跟services配置项目对齐(即平级的意思)
- flink_network:
- driver: bridge
复制代码
(2)使用如下命令启动集群(记得先启动docker),同时查看集群运行状态:
- systemctl start docker
- docker-compose -f flink.yml up -d
- docker ps
复制代码 效果如下
- [root@node1 server]# systemctl start docker
- [root@node1 server]# docker-compose -f flink.yml up -d
- /usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
- from cryptography.hazmat.backends import default_backend
- Creating network "server_flink_network" with driver "bridge"
- WARNING: Found orphan containers (kafka2, kafka1, kafka3) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
- Pulling jobmanager (flink:latest)...
- latest: Pulling from library/flink
- 6414378b6477: Pull complete
- 2c9f253e30bf: Pull complete
- 65c8233e39bf: Pull complete
- b59d22db63f3: Pull complete
- b80a9c727cee: Pull complete
- da3337ead35a: Pull complete
- 53e543b721f9: Pull complete
- ecebf073acfb: Pull complete
- 21be4ec89742: Pull complete
- f71629a01e27: Pull complete
- cc4f5f48c9f1: Pull complete
- Digest: sha256:2ec7f6d5591444334f63b66ddd49c7ae02551cb0a27c0988790fa43caa49716f
- Status: Downloaded newer image for flink:latest
- Creating jobmanager ... done
- WARNING: The "taskmanager" service specifies a port on the host. If multiple containers for this service are created on a single host, the port will clash.
- Creating server_taskmanager_1 ... done
- Creating server_taskmanager_2 ... done
- Creating server_taskmanager_3 ... done
- [root@node1 server]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- e908f25d0df5 flink:latest "/docker-entrypoint.…" 6 seconds ago Up 2 seconds 6123/tcp, 0.0.0.0:8084->8081/tcp, :::8084->8081/tcp server_taskmanager_1
- 8ebe74a4481a flink:latest "/docker-entrypoint.…" 6 seconds ago Up 2 seconds 6123/tcp, 0.0.0.0:8083->8081/tcp, :::8083->8081/tcp server_taskmanager_2
- 11936734f5cf flink:latest "/docker-entrypoint.…" 6 seconds ago Up 3 seconds 6123/tcp, 0.0.0.0:8082->8081/tcp, :::8082->8081/tcp server_taskmanager_3
- e053c7560ee9 flink:latest "/docker-entrypoint.…" 8 seconds ago Up 6 seconds 6123/tcp, 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp jobmanager
- [root@node1 server]#
复制代码
乐成后在网页上面输入node1:8081进入这个网站(偶然间由于网络不好会进入不了这个网站)

然后就ok了!
(3)关闭flink集群代码
- docker-compose -f flink.yml down
复制代码 效果如下
- [root@node1 server]# docker-compose -f flink.yml down
- /usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
- from cryptography.hazmat.backends import default_backend
- Stopping server_taskmanager_1 ... done
- Stopping server_taskmanager_2 ... done
- Stopping server_taskmanager_3 ... done
- Stopping jobmanager ... done
- WARNING: Found orphan containers (kafka2, kafka3, kafka1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
- Removing server_taskmanager_1 ... done
- Removing server_taskmanager_2 ... done
- Removing server_taskmanager_3 ... done
- Removing jobmanager ... done
- Removing network server_flink_network
- [root@node1 server]#
复制代码 3.参考文章:
(1)在linux捏造机上面配置Docker时所踩过的坑_docker 20.10.6设置镜像源不见效-CSDN博客
(2)黑马大数据学习条记4-Hive摆设和基本操作_黑马大数据 hive条记-CSDN博客
(3)ubuntu系统中使用docker-compose安装摆设docker集群(本地)-CSDN博客
(4)使用docker搭建kafka集群并且进行相应的实践-CSDN博客
4.补充条记
(1)假如使用docker拉取flink镜像的速率太慢,就可能是由于docker的镜像源太老旧了。
使用 Docker 拉取 Flink 镜像时,假如速率较慢,可能有以下几个缘故原由:
### 1. **Docker Hub 服务器远程访问速率慢**
- 默认环境下,Docker 会从 Docker Hub 拉取镜像,而 Docker Hub 的服务器位于国外。假如你在中国或其他地域,可能会受到网络带宽限制,导致下载速率慢。
### 2. **网络带宽标题**
- 假如你的网络连接较慢,大概有网络拥塞、丢包等标题,都会导致拉取速率变慢。
### 3. **Docker 镜像源不稳定**
- Docker Hub 本身的服务器或某个镜像源可能出现故障或负载过高,导致访问速率降落。
### 4. **没有使用 Docker 镜像加速器**
- Docker 官方没有为国内用户提供快速的镜像下载服务,若未配置国内的 Docker 镜像加速器,下载速率会非常慢。
### 5. **镜像的巨细**
- Flink 镜像可能相对较大,下载时需要更多的时间,尤其是没有进行增量拉取(假如镜像有很大变革,可能需要完备拉取)。
### 6. **镜像的标签(Tag)标题**
- 假如你指定的是一个较老大概不常用的镜像标签,可能会拉取到一些不常用的镜像版本,而这些镜像版本可能分布在不同的服务器节点上,导致拉取速率变慢。
---
### **解决办法:**
1. **使用国内镜像源**:
- 配置 Docker 镜像加速器,选择国内的 Docker 镜像源来加速下载速率。常见的加速器有:
- 网易云镜像:`http://hub-mirror.c.163.com`
- 腾讯云镜像:`https://mirror.ccs.tencentyun.com`
- 阿里云镜像:`https://registry.cn-hangzhou.aliyuncs.com`
- Docker 官方中国镜像:`https://registry.docker-cn.com`
2. **配置 Docker 镜像加速器**:
- 你可以在 Docker 配置文件 `/etc/docker/daemon.json` 中配置镜像加速器。比方:
```json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
]
}
```
- 然后重新启动 Docker 服务:
```bash
sudo systemctl restart docker
```
3. **选择符合的镜像标签**:
- 尽量选择较为稳定和常用的标签(如 `latest` 或特定版本标签),制止使用过时的标签。
4. **查抄网络环境**:
- 查抄你的网络连接是否稳定,并确保没有中间的网络限制或防火墙阻止访问 Docker Hub。
通过这些方法,你应该可以或许提高拉取 Flink 镜像的速率。
(2)docker ps和docker-compose ps区别是什么
`docker ps` 和 `docker-compose ps` 都用于查看容器的运行状态,但它们有一些重要的区别,主要表现在它们的使用场景和管理方式上。下面是详细的对比:
### 1. **`docker ps`**:
- **功能**:列出当前正在运行的 Docker 容器。
- **作用范围**:它只显示当前 Docker 主机上运行的容器,不依赖于 Docker Compose 配置。
- **默认显示内容**:默认显示容器的 ID、名称、镜像、命令、创建时间、状态、端口等信息。
- **实用场景**:当你使用 `docker` 命令直接管理容器时,使用 `docker ps` 查看容器的状态。比方,你直接使用 `docker run` 启动的容器。
#### 示例:
```bash
docker ps
```
输出示例:
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1234abcd5678 nginx "nginx -g 'daemon of…" 10 minutes ago Up 9 minutes 80/tcp hopeful_morse
```
- `docker ps` 只显示运行中的容器。假如你想查看所有容器(包括制止的容器),可以加上 `-a` 参数:
```bash
docker ps -a
```
### 2. **`docker-compose ps`**:
- **功能**:列出由 Docker Compose 管理的服务的容器状态。
- **作用范围**:它只显示当前在 Docker Compose 配置下运行的容器。Docker Compose 是一个工具,允许你通过 YAML 文件定义和运行多个 Docker 容器。
- **默认显示内容**:显示服务的状态、容器 ID、端口、以及服务名称等信息。
- **实用场景**:当你使用 Docker Compose 启动一组容器时,使用 `docker-compose ps` 查看这些容器的状态。
#### 示例:
```bash
docker-compose ps
```
输出示例:
```
Name Command State Ports
-----------------------------------------------------------------------------------
myapp_web_1 python app.py Up 3 minutes 0.0.0.0:5000->5000/tcp
myapp_db_1 docker-entrypoint.sh postgres Up 3 minutes 5432/tcp
```
- `docker-compose ps` 只显示通过当前目次下的 `docker-compose.yml` 文件管理的服务。
- 假如你需要查看所有容器的状态(包括制止的容器),可以加上 `-a` 参数:
```bash
docker-compose ps -a
```
### **主要区别**:
| **特性** | **`docker ps`** | **`docker-compose ps`** |
|-------------------------|------------------------------------------------------|----------------------------------------------------------|
| **管理对象** | Docker 容器(所有通过 Docker CLI 启动的容器) | Docker Compose 管理的服务容器(通过 `docker-compose` 启动的容器) |
| **查看范围** | 显示所有运行中的容器(不依赖于 Compose) | 仅显示通过 `docker-compose` 启动的容器 |
| **命令的作用对象** | 针对单个 Docker 容器的操作 | 针对一个或多个服务(服务是由 Compose 配置定义的) |
| **是否依赖 Docker Compose** | 否 | 是 |
| **常用场景** | 直接使用 `docker run` 启动的容器,或在没有 Compose 的环境下管理容器 | 使用 Docker Compose 管理多容器应用时,查看应用状态 |
### **总结**:
- 假如你只是想查看 Docker 主机上所有容器的状态,无论它们是通过 Docker 还是 Docker Compose 启动的,使用 `docker ps`。
- 假如你在使用 Docker Compose 管理一个多容器应用,并想查看这些容器的状态,使用 `docker-compose ps`。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |