当前位置: 首页 > news >正文

可以做结构式的网站网站主页

可以做结构式的网站,网站主页,北京到牡丹江,公司网站建设选什么服务器docker服务容器化 1 引言2 多个容器间网络联通2.1 单独创建关联2.2 创建时关联 3 服务搭建3.1 镜像清单3.2 容器创建 4 联合实战4.2 flink_sql之kafka到starrocks4.2 flink_sql之mysql到starrocks 5 文献借鉴 1 引言 ​ 利用docker可以很效率地搭建服务,本文在win1…

docker服务容器化

      • 1 引言
      • 2 多个容器间网络联通
        • 2.1 单独创建关联
        • 2.2 创建时关联
      • 3 服务搭建
        • 3.1 镜像清单
        • 3.2 容器创建
      • 4 联合实战
        • 4.2 flink_sql之kafka到starrocks
        • 4.2 flink_sql之mysql到starrocks
      • 5 文献借鉴

1 引言

​ 利用docker可以很效率地搭建服务,本文在win10下安装docker-desktop,从镜像的拉取,到容器的创建,最后容器间联合使用,该过程有很多细节,记录和分享在这里,共勉。

2 多个容器间网络联通

​ 在docker中可以创建网络,作为容器间网络联通媒介,网络联通有下面两种方式,首先需要创建网络:

# 创建网络名为flink-network的网络
docker network create flink-network# 查看网络内的容器信息:
docker network inspect flink-network
2.1 单独创建关联

​ 容器已经创建,但是没有关联网络,需要单独创建关联时

# 这里假设已经创建容器starrocks,关联上已创建的网络flink-network
docker network connect flink-network starrocks
2.2 创建时关联

​ 如果网络已经创建,容器未创建,则可以在创建容器时直接关联网络,如已创建上面的网络flink-network,下面打算创建starrocks容器时

# 已创建上面的网络flink-network,下面打算创建starrocks容器时
docker run -p 19030:9030 -p 18030:8030 -p 18040:8040 \
-itd --name starrocks \
--network flink-network \
starrocks/allin1-ubuntu:3.1.10
# 在运行命令中添加已存在网络flink-network --network flink-network

​ 可以查看网络内的容器信息

# 查看网络内的容器信息:
docker network inspect flink-network

在这里插入图片描述

3 服务搭建

3.1 镜像清单

​ 我们这里搭建kafka-flink-starrocks的项目服务,以starrocks作为数仓,mysql和redis为业务库,flink和kafka进行CDC和ETL。

repositorytagsiz
starrocks/allin1-ubuntu3.1.104.37GB
flink1.13.5625MB
zookeeper3.4.13150MB
wurstmeister/kafka2.13-2.8.1468MB
mysql8.0.19546MB
redis6.0.8104MB
3.2 容器创建

1)首先,创建starrocks容器,外部挂载磁盘位置E:\tmp\docker_volumes\starrocks\data

# 挂载容器外部磁盘/文件夹「启动」,
docker run -itd --name starrocks \
--network flink-network \
-v E:\tmp\docker_volumes\starrocks\data:/home/zzz/data 
-p 19030:9030 -p 18030:8030 -p 18040:8040 
starrocks/allin1-ubuntu:3.1.10
# 启动SQL client(Connect to StarRocks with a SQL client)
docker exec -it starrocks \
mysql -P 9030 -h 127.0.0.1 -u root -p 123456 --prompt="StarRocks > "
# 在容器内部,查看fe、be状态
show proc '/frontends' \G
show proc '/backends' \G

2)然后,创建flink容器,JobManager和TaskManager都有创建

# 创建 JobManager docker run \-itd \--name=jobmanager \--publish 8081:8081 \--network flink-network \--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \flink:1.13.5 jobmanager # 创建 TaskManager docker run \-itd \--name=taskmanager \--network flink-network \--env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \flink:1.13.5 taskmanager # 从https://mvnrepository.com/检索下面jar包 添加jar到flink/lib/目录
# 在宿主机保存jar包路径下运行下面命令
docker cp flink-sql-connector-mysql-cdc-2.0.2.jar jobmanager:/opt/flink/lib/
docker cp flink-sql-connector-mysql-cdc-2.0.2.jar taskmanager:/opt/flink/lib/docker cp flink-connector-starrocks-1.1.14_flink-1.13_2.11.jar jobmanager:/opt/flink/lib/
docker cp flink-connector-starrocks-1.1.14_flink-1.13_2.11.jar taskmanager:/opt/flink/lib/docker cp flink-connector-jdbc_2.11-1.13.5.jar jobmanager:/opt/flink/lib/
docker cp flink-connector-jdbc_2.11-1.13.5.jar taskmanager:/opt/flink/lib/docker cp flink-sql-connector-kafka_2.11-1.13.5.jar jobmanager:/opt/flink/lib/
docker cp flink-sql-connector-kafka_2.11-1.13.5.jar taskmanager:/opt/flink/lib/

3)创建zookeeper和kafka容器

# 安装zk
docker run -d --restart=always \
-e ALLOW_ANONYMOUS_LOGIN=yes  \
--log-driver json-file  \
--log-opt max-size=100m  \
--log-opt max-file=2   \
--name zookeeper  \
--network flink-network \
-p 2181:2181  \
-v E:\tmp\docker_volumes\zookeeper\localtime:/etc/localtime zookeeper:3.4.13# 安装kafka 需要注意的时 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT:宿主机ip:9092
docker run -d --name kafka \
--network flink-network \
--log-driver json-file  \
--log-opt max-size=100m  \
--log-opt max-file=2  \
-p 9092:9092  \
--link zookeeper:zookeeper \
-e KAFKA_BROKER_ID=0  \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181/kafka  \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092  \
wurstmeister/kafka:2.13-2.8.1# 运行kafka交换命令行
docker exec -it kafka /bin/bash
  1. 创建容器mysql和redis,(本人虽然创建了,但是使用的本地的客户端)在这里插入图片描述

4 联合实战

4.2 flink_sql之kafka到starrocks

1)kafka数据准备

# 进入kafka交互命令行
docker exec -it kafka /bin/bash# 在容器内,创建主题user  这里容器主机ip是zk容器的ip
./kafka-topics.sh --zookeeper 容器主机ip:2181/kafka --create --replication-factor 1 --partitions 1 --topic user# 创建生产者 容器主机ip是kafka容器的ip
./kafka-console-producer.sh --broker-list  容器主机ip:9092  --topic user# 创建消费者 容器主机ip是kafka容器的ip
./kafka-console-consumer.sh --topic user --from-beginning --bootstrap-server 容器主机ip:9092

2)starrocks数据准备

# 使用dbeaver客户端,或者进入starrocks容器
# 启动SQL client(Connect to StarRocks with a SQL client)
docker exec -it starrocks \
mysql -P 9030 -h 127.0.0.1 -u root -p 123456 --prompt="StarRocks > "# 创建主键模型表 s_user
CREATE TABLE IF NOT EXISTS `s_user` (`id` int(10) NOT NULL COMMENT "",`name` varchar(20) NOT NULL COMMENT "",`p_id` INT(2) NULL COMMENT ""
)
PRIMARY KEY(`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
  1. flink_sql准备
# 进入flink容器交互命令行
docker exec -it jobmanager /bin/bash# 在容器内容运行,进入bin路径
cd opt/flink/bin
# 在bin路径下运行flink_sql客户端
sql-client.sh# 可以查看是否有表
show tables;# 创建source源表 source_Kafka_user
CREATE TABLE source_Kafka_user(id INT,name STRING,p_id INT
) WITH ('connector' = 'kafka','topic' = 'user','properties.bootstrap.servers' = 'kafka容器ip:9092','properties.group.id' = 'source_user','scan.startup.mode' = 'earliest-offset','format' = 'csv'
);# 创建Sink目标表,sink_starrocks_suser
CREATE TABLE sink_starrocks_suser (id INT,name STRING,p_id INT,PRIMARY KEY (id) NOT ENFORCED
)WITH ('connector' = 'starrocks','jdbc-url'='jdbc:mysql://starrocks容器ip:9030','load-url'='starrocks容器ip:8040','database-name' = 'my_test_db','table-name' = 's_user','username' = 'root','password' = '123456','sink.buffer-flush.interval-ms' = '5000','sink.properties.column_separator' = '\x01','sink.properties.row_delimiter' = '\x02'
);# 在flink_sql创建ETL命令,实时运行
insert into sink_starrocks_suser select id,name,p_id from source_Kafka_user;

在这里插入图片描述

​ 可以在flinkUI:http://localhost:8081/查看任务运行详情
在这里插入图片描述

4.2 flink_sql之mysql到starrocks
  1. mysql数据准备
CREATE TABLE `s_user` (`id` INT(11) NOT NULL,`name` VARCHAR(32) DEFAULT NULL,`p_id` INT(2) DEFAULT NULL,PRIMARY KEY (`id`)
);insert into s_user values(10086,'lm',61),(10010, 'ls',11), (10000,'ll',61);

2)starrocks数据准备: 和上面一样

  1. flink_sql准备
# 创建source源表 source_mysql_suser
CREATE TABLE source_mysql_suser (id INT,name STRING,p_id INT,PRIMARY KEY (id) NOT ENFORCED
)WITH ('connector' = 'jdbc','driver'='com.mysql.jdbc.Driver','url' = 'jdbc:mysql:/宿主机ip:3306/flink_pro','table-name' = 's_user','username' = 'root','password' = '123456'
);# 创建Sink目标表,sink_starrocks_suser
CREATE TABLE sink_starrocks_suser (id INT,name STRING,p_id INT,PRIMARY KEY (id) NOT ENFORCED
)WITH ('connector' = 'starrocks','jdbc-url'='jdbc:mysql://starrocks容器ip:9030','load-url'='starrocks容器ip:8040','database-name' = 'my_test_db','table-name' = 's_user','username' = 'root','password' = '123456','sink.buffer-flush.interval-ms' = '5000','sink.properties.column_separator' = '\x01','sink.properties.row_delimiter' = '\x02'
);# 在flink_sql创建ETL命令,实时运行
insert into sink_starrocks_suser select id,name,p_id from source_mysql_suser;

在这里插入图片描述

5 文献借鉴

StarRocks数据导入–Flink Connector与CDC秒级数据同步

http://www.hkea.cn/news/879345/

相关文章:

  • 查网站备案名称上海网络营销seo
  • 人是用什么做的视频网站网络营销方案设计毕业设计
  • 建设网站考虑因素关键词优化是怎么弄的
  • 陕西营销型网站建设推广普通话的内容简短
  • 做配电箱的专门网站百度指数属于行业趋势及人群
  • 学做网站的网站重庆seo整站优化报价
  • 保定网站设计概述seo推广软件排名
  • 查pv uv的网站网络营销推广服务
  • 怎样让客户做网站优化 保证排名
  • 企业营销型网站做的好网络营销的有哪些特点
  • 网站开发 合同兰州快速seo整站优化招商
  • 网站开发技术现状深圳网络营销推广培训
  • 知名网络公司有哪些河北网站seo
  • 学做网站多少钱关键词难易度分析
  • 传奇如何做网站网站建设策划书案例
  • 龙岗 网站建设深圳信科最好用的搜索神器
  • 动态网站开发日志重庆seo整站优化报价
  • 魔站网站建设微信公众号运营推广方案
  • 好的网站建设公司营销推广外包公司
  • 教育机构做网站素材长尾关键词爱站
  • 做网站选什么系统企业网站seo推广
  • 山东省南水北调建设管理局网站腾讯网qq网站
  • 菏泽做网站公司sem网络营销
  • 专业建站外包兰州网络优化seo
  • 企业邮箱腾讯杭州seo按天计费
  • 政府网站建设先进个人事迹互动营销
  • 网站建设之织梦模板做国外网站
  • 小程序电商模板seo关键词排名优化品牌
  • 泉州网站优化排名百度关键字优化价格
  • 上海网站建设好处win优化大师官网