如何快速的投入到Flink的学习当中,很多人在搭建环境过程中浪费了太多的时间。一套一劳永逸的本机Flink开发环境可以让我们快速的投入到Flink的学习中去,将精力用在Flink的原理,实战。这也对于工作和面试有着巨大帮助。

​ 本文将利用Flink的官方练习环境,在本地Windows系统中快速的搭建Flink环境,并详细的记录整个搭建过程。

文中所有的安装包可以在后台回复 “flink0907” 获取

Flink的环境搭建需要一定的时间,有多种方法可以在各种环境中部署和操作Apache Flink。不管这种多样性如何,Flink群集的基本组成都相同,并且适用类似的操作原理。

如何快速的搭建一套Flink与Kafka的本地环境,供我们开发学习使用呢?

Flink官网提供了一个环境,在这个环境中可以学习如何管理和运行Flink Jobs。可以学习如何部署和监视应用程序,体验Flink如何从作业失败中恢复,以及执行日常操作任务,例如升级和缩放。

Flink官方提供了一套学习环境,本文将详细介绍这套环境的搭建与使用过程。

此环境由一个Flink 集群和一个Kafka群集组成。

Flink群集始终由一个Flink Master 和一个或多个 Flink TaskManager 组成。Flink Master负责处理作业提交,作业的监督以及资源管理。Flink TaskManager是工作进程,负责执行构成Flink作业的实际任务执行。

启动时,名为Flink Event Count的Flink作业将提交给JobManager。此外,还将创建两个Kafka Topics 输入输出

git

https://git-scm.com/downloads

初始化

git config user.name "jack"(配置用户名)

(查看用户名命令git config user.name)

git config user.email "8888888@qq.com"(配置邮箱)

(查看邮箱命令git config user.email)

docker

首先登陆docker官网,下载相应的docker安装包。

https://www.docker.com/get-started

大概300多M,耐心等待~

首先,在本机安装git环境。

下载flink-playgrounds源代码。

git clone --branch release-1.11 https://github.com/apache/flink-playgrounds.git

进行安装

Docker可以帮我们开启Hyper-V

等待安装成功

cd flink-playgrounds/operations-playground
docker-compose build

开始构建环境,需要下载的内容较多,耐心等待~

最终下载成功

启动环境

docker-compose up -d

也需要下载一会等待启动成功

查看正在运行的docker容器

docker-compose ps

请注意flink webUI监听的端口,我的为8081

查看管理页面

通过http://localhost:8081访问Flink管理页面

大功告成了~ 下次开机的时候,

cd flink-playgrounds/operations-playground
docker-compose up -d
docker-compose ps

就可以非常方便的开启Flink的研发环境了~

下面列举一些简单的操作。

常见操作

如果需要停止开发环境

docker-compose down -v

查看日志

JobManager日志可以通过添加docker-compose查看

docker-compose logs -f jobmanager

TaskManager日志也可以

docker-compose logs -f taskmanager

Flink CLi

docker-compose run --no-deps client flink --help

Flink RestAPI

curl localhost:8081/jobs

Kafka 操作命令

//input topic (1000 records/s)
docker-compose exec kafka kafka-console-consumer.sh \
--bootstrap-server localhost:9092 --topic input //output topic (24 records/min)
docker-compose exec kafka kafka-console-consumer.sh \
--bootstrap-server localhost:9092 --topic output

具体操作

列出正在运行的作业

docker-compose run --no-deps client flink list

观察故障与恢复

1、观察输出

docker-compose exec kafka kafka-console-consumer.sh \
--bootstrap-server localhost:9092 --topic output

2、模拟故障

这里模拟TaskManager进程的丢失

docker-compose kill taskmanager

几秒钟后,JobManager将注意到TaskManager丢失,取消受影响的Job,然后立即重新提交以进行恢复。

3、恢复

docker-compose up -d taskmanager

重新启动TaskManager后,它将重新连接到JobManager

更多Flink,Kafka,Spark等相关技术博文,科技资讯,欢迎关注实时流式计算 公众号后台回复 “电子书” 下载300页Flink实战电子书

超详细,Windows系统搭建Flink官方练习环境的更多相关文章

  1. 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

    史上最详细Windows版本搭建安装React Native环境配置   2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views ...

  2. 史上最详细Windows版本搭建安装React Native环境配置

    说在前面的话: 感谢同事金晓冰倾情奉献本环境搭建教程 之前我们已经讲解了React Native的OS X系统的环境搭建以及配置,鉴于各大群里有很多人反应在Windows环境搭建出现各种问题,今天就特 ...

  3. react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置

    参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...

  4. 在windows系统搭建并运行一个Flutter项目

    搭建Flutter之前需要已经安装好相应的Flutter开发环境,如果没安装好相应环境的可以查看在windows系统搭建Flutter开发环境 搭建Flutter项目可以通过命令行搭建,或者通过and ...

  5. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  6. Windows下搭建objective C开发环境

    摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...

  7. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  8. 在Windows平台搭建C语言开发环境

    一.在Windows平台搭建DEV C++集成开发环境     官网 https://sourceforge.net/projects/orwelldevcpp/ 中下载Dev C++运行即可 环境准 ...

  9. Windows下搭建Spark+Hadoop开发环境

    Windows下搭建Spark+Hadoop开发环境需要一些工具支持. 只需要确保您的电脑已装好Java环境,那么就可以开始了. 一. 准备工作 1. 下载Hadoop2.7.1版本(写Spark和H ...

随机推荐

  1. Mixed Precision Training —— caffe-float16

    简介 最近有了突如其来的想法,如何把caffe的变得更小更快.后来翻到Nvidia开发caffe-float16,同时也看到它的论文.看完大致了解一番后,就做一下记录. 该工作的目标是,减少网络的所需 ...

  2. C# Thread.Name 的作用和意义

    Thread.Name属性 C#的线程提供Thread.Name属性.这意味着每个线程可以设定一个Name属性来标志它们. Name属性的使用时特性 线程的Name属性默认情况下是null.该值只能被 ...

  3. Linux(Centos 7)下安装Git并配置连接GitHub

    1.安装git  Centos7 查看git --version 2.配置用户名密码 git config --global user.name "xxx" git config ...

  4. Springboot开启事务的支持

    主要分为两步 步骤一.在main方法加上@EnableTransactionManagement注解: @SpringBootApplication @EnableTransactionManagem ...

  5. 2020-07-07:mysql如何实现跨库join查询?

    福哥答案2020-07-07: 1.同服务跨库.表名称带上库名.SELECT * FROM 数据库名称1.表名称 JOIN 数据库名称2.表名称 ON 数据库名称1.表名称.tid = 数据库名称2. ...

  6. 记录使用Python登录浙江大学统一身份认证

    背景 现在每天要进行健康情况上报,但是因为经常睡过头忘记打卡,于是想着写一个程序来自动打卡. 统一身份认证 访问健康情况上报页面(https://healthreport.zju.edu.cn/nco ...

  7. 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统 | 控制反转搭配简单业务

    教程预览 01 | 前言 02 | 简单的分库分表设计 03 | 控制反转搭配简单业务 说明 我们上一节已经成功通过 连接提供程序存储库,获取到了 连接提供程序,但是连接提供程序和数据库连接依赖太深, ...

  8. Jmeter系列(49)- 详解 HTTP Cookie 管理器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 功能一 首先,它像网络浏览器 ...

  9. linux系统相关参数查询(内存,磁盘,CPU)

    1.服务器型号:dmidecode -s system-product-name 出厂日期:dmidecode -s bios-release-date 2.磁盘大小:parted -l 3.物理内存 ...

  10. leetcode刷题记录——链表

    使用java实现链表 单向链表 双向链表 单向循环链表 双向循环链表 题目记录 160.相交链表 例如以下示例中 A 和 B 两个链表相交于 c1: A: a1 → a2 c1 → c2 → c3 B ...