使用Docker部署Flink大数据项目

本文是为基于Flink的商品推荐系统所搭建的Docker环境,目的为了方便体验项目,一键部署项目需要的所有环境,并预填充所需要的数据。完整的环境包括Zookeeper 、Kafka 、 Hbase 、 Mysql 、 Redis 、 Flink 。

环境介绍:

  • zookeeper 3.4.5
  • kafka 2.12-2.2.1
  • hbase 1.5.0
  • mysql 8.0.18
  • redis
  • flink 1.9.0
容器环境.png

整个项目的部署和工作环境如上图所示。由于 kafka 和 hbase 均需要 zookeeper 的支持,所以没有使用集成式的 hbase docker镜像,所以笔者自己基于 hbase 1.5.0 制作了一版镜像,由于 hbase 的 standlone模式端口会随机生成,故也搭建成了伪分布式,HMaster 和 HRegionserver均在同一个 Docker Container 中。 在Kafka容器中,配置了对内对外两个地址,这是为了方便远程的队列消费,以及在容器内自动生产消息。

搭建步骤:

1. 拉取镜像并启动

首先请下载 目录 内的所有文件,因为mysql和hbase需要插入数据,kafka需要启动一个shell脚本自动的模拟用户点击行为。对应的请修改docker-compose.yml文件中对应的文件地址为自己所保存的地址。

首先请保证已经成功安装了docker和docker-compose,其次请将docker-compose.yml文件中的 hbase 的 hostname 修改为自己的主机名。

最后通过docker-compose启动所有容器

[root@docker-linux recommend]# docker-compose up -d

2. 给 Mysql / Redis 填充数据,给 Hbase 创建表结构

进入mysql container, 连接mysql

[root@docker-linux recommend]# docker exec -ti mysql bash
root@6fdc02332cd0:/# mysql -u root -p

通过提前制作好的sql文件填充mysql

mysql> source /opt/contact.sql

之后是构建 hbase 表结构

[root@docker-linux recommend]# docker exec -ti hbase bash
root@docker-linux:/opt/hbase# hbase shell /opt/hbase_ini.sql

通过 list 命令可以看到我们创建的表都已成功

hbase(main):001:0> list
TABLE                                                             ··· 
8 row(s) in 0.1390 seconds
=> ["con", "p_history", "prod", "ps", "px", "u_history", "u_interest", "user"]

最后进入redis,创建10个热度数据

[root@docker-linux recommend]# docker exec -ti redis bash
root@7735aff1391f:/bin# redis-cli

启动客户端后,之后按照如下格式创建 set 0 123之类的创建从0-9的10条数据即可,最后一位为商品id,在0-999内任意取值。

3. 启动 Kafka 消息生成器

进入kafka容器并启动shell脚本即可,脚本会按照每秒一次的频率发送message到log这个topic里。

[root@docker-linux recommend]# docker exec -ti kafka bash
bash-4.4# sh /opt/generator.sh -d

验证成功发送消息的方法是重新开一个连接进入kafka容器并启动Consumer,注意kafka内部端口号配置的是9093

bash-4.4# $KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server kafka:9093 --topic log

正确看到如下格式的消息即可

558,559,1574180802,1
576,576,1574180819,3
585,585,1574180828,3
594,594,1574180837,3
603,603,1574180846,3
613,613,1574180856,1

执行任务:

我们这个项目一共有6个flink的任务,如果只是在本地测试的话,可以直接在IDEA中启动对应的任务即可,为了做实验,我们把项目打包并提交到 Docker 的 Flink 中,为了方便就不再把各种依赖单独放到集群中,而是直接打到任务的jar包中。正确的打包方法可以参考这篇博客

我们直接把打包好的jar包放到集群中,并拷贝到flink的docker中(jobmanager)

[root@docker-linux pkg]# docker cp ./logtask.jar flink_jobmanager:/opt/

然后进入flink jobmanager的容器中,提交jar包到集群

[root@docker-linux pkg]# docker exec -ti flink_jobmanager bash
root@0f5edbeeecb9:/opt/flink# flink run /opt/logtask.jar 

提交成功后可以在Flink WebUI观察我们提交的任务

flink界面.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容