Flink Standalone Cluster在windows下的搭建

前言

Flink的demo环境,可以直接在windows或者Linux下运行。服务会自动启动一个JobManager以及一个TaskManager。

$ ./bin/start-cluster.sh  # Start Flink

生产环境一般都需要高可用支持,屏蔽单点故障产生的影响(这里的高可用只JobManager的高可用)。Flink支持两种部署方式:standalone以及 YARN clusters。
standalone方式下,Flink通过Zookeeper管理多个JobManager,并在同一时刻保证一个Leader生效。
YARN方式下,每次只有一个JobManager运行。如果JobManager出现故障,则YARN负责重启。
本文采用了standalone方式部署。(Hadoop环境的代价太大了。学习成本和维护成本都很高,而且内部机制产生的影响很多,不利于学习Flink。)

Windows WSL

Flink的standalone模式需要Linux环境。之前一直用虚拟机来提供Linux环境,但是太笨重了。启动、运行占资源,需要配置网络,无法和windows共享资源。所以抛弃了虚拟机,采用WSL。

  • WSL速度快,轻便。设置开机启动后,打开对话框就可以直接使用。设置了开机启动,也不会占用什么资源。
  • WSL可以共享windows的环境变量。如果windows安装了java,并配置了JAVA_HOME,linux环境也可以使用。
  • WSL可以直接访问windows的文件系统。
/mnt/系统盘  #系统盘就是C,D,E
#例如访问C盘的文件,就可以ls /mnt/c
  • 网络共享。WSL直接使用的是windows的网络。

既然都这么优秀了,那么怎么安装WSL呢。直接在应用商店搜索安装就好。我使用的是ubuntu,因为这个是使用最多的WSL。如有疑问,可以上网搜索。

环境准备

为了加快软件安装速度,可以更改为阿里的源。
我的源配置:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

java环境

windows安装了java,不需要额外安装。
可以通过apt安装openjdk,也可以下载oralce的jdk。

ssh

安装ssh-server

sudo apt-get install openssh-server

修改配置

sudo vi /etc/ssh/sshd_config

修改内容:

ListenAddress localhost #可以不修改。监听本地。默认是0.0.0.0,监听所有。
PermitRootLogin yes #允许root用户远程登录
PasswordAuthentication yes #密码认证

重启sshd-server:

sudo service ssh restart
或者 /etc/init.d/ssh restart

启动时会发现错误提示如下。需要生成秘钥。

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

生成秘钥命令:

sudo ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key

Flink搭建

首先需要准备安装文件。
下载flink:

https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.12.tgz

下载zookeeper:

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.6/apache-zookeeper-3.5.6-bin.tar.gz

zookeeper

配置conf/zoo.cfg。我只启动了一个节点,生成环境应该至少三个节点。

# ZooKeeper quorum peers
server.1=localhost:2888:3888
# server.2=host:peer-port:leader-port

Flink的发布版本中携带了zookeeper,所以可以通过Flink直接启动zookeeper。

bin/start-zookeeper-quorum.sh 

注意,官方文档中明确说明,不建议采用Flink的zookeeper。生产环境应该使用zookeeper自己的环境。
运行成功后,可以通过之前下载的zookeeper客户端工具zkCli.sh,访问zookeeper信息。我们之后也会通过这种方式查看JobManager的集群管理数据。

JobManager

配置conf/flink-conf.yaml

high-availability: zookeeper
high-availability.zookeeper.quorum: localhost:2181
high-availability.storageDir:  file:///mnt/d/temp/ha/
high-availability.zookeeper.path.root: /flink
high-availability.cluster-id: /flink_default_cluster

配置JobManager启动实例conf/masters:

localhost:8081
localhost:8082
localhost:8083

启动cluster:

bin/start-cluster.sh

启动成功后,可以查看进程。可以看到启动了三个JobManager。
在这里插入图片描述

解压之前下载的zookeeper,使用bin/zkCli.sh可以访问zookeeper,查看目录信息。
在这里插入图片描述
其中flink是我们配置的Flink集群根路径,flink_default_cluster是我们配置的cluster-id。初始启动的时候,目录下可能没有这么多子目录,在之后验证环境,发布job后,相关的路径就会创建出来。

Flink会将信息存放在high-availability.storageDir存储路径下。本文配置的是file:///,表示使用本地存储。可以直接访问本地路径/mnt/d/temp/ha/,查看Flink存放了哪些信息。其实,上传的jar,pid等信息都会再次路径下。如果有hadoop环境,那么可以配置为hdfs:///路径。

验证环境

最好的验证方式,就是运行一个任务。为了方便,我们使用Flink自带的example来验证环境。
Flink贴心的将所有的例子都打包好,和Flink的版本一起发布。可以通过Flink提供的客户端上传,也可以通过页面操作上传。为了简单,我们采用页面操作。
访问页面地址:

http://localhost:8081/

在submit tab页,提交jar
在这里插入图片描述
运行数据源。由于我们使用的是socketWindowWordCount,所以需要建立socket数据源。

nc -l 12345

运行任务。需要定义参数,指向上文建立的socket数据源。
在这里插入图片描述
在running job页面,查看运行中的任务:
在这里插入图片描述

运行任务后,在nc端输入字符:
在这里插入图片描述
在TaskManager的页面,可以查看统计输出结果:
在这里插入图片描述

停止standalone cluster
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值