欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):
https://github.com/zq2599/blog_demos
- 今天的实战是用两台树莓派3B组建Flink1.7集群环境,模式是独立集群(Cluster Standalone);
操作步骤
- 准备操作系统;
- 安装JDK;
- 配置host;
- 安装Flink1.7;
- 配置参数;
- 设置两台树莓派相互SSH免密码登录;
- 启动Flink集群环境;
- 部署一个Flink应用,验证环境是否正常;
树莓派操作系统
安装JDK
安装Flink1.7
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20181216170555804.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
- 下载的Flink安装包文件是flink-1.7.0-bin-hadoop28-scala_2.11.tgz,放在此位置:/usr/local/work;
- 在/usr/local/work目录下执行命令tar -zxvf flink-1.7.0-bin-hadoop28-scala_2.11.tgz解压,会生成一个文件夹:flink-1.7.0
机器情况
- 两台树莓派3B的IP地址、hostname等信息如下列表所示:
IP地址 |
hostname |
身份 |
192.168.1.102 |
dubhe |
集群的master,即job节点 |
192.168.1.104 |
merak |
集群的slave,即task节点 |
配置
- 注意,接下来的四步配置,请在dubhe、merak这两台机器上各执行一次,操作的步骤内容一模一样:
- 打开/etc/hosts文件,增加以下两行(请按照您的机器IP情况来写):
192.168.1.102 dubhe
192.168.1.104 merak
- 打开文件/usr/local/work/flink-1.7.0/conf/flink-conf.yaml,一共修改了以下四个配置:
jobmanager.rpc.address: dubhe
jobmanager.heap.size: 512m
taskmanager.heap.size: 512m
taskmanager.numberOfTaskSlots: 2
- jobmanager.rpc.address是master的地址,jobmanager.heap.size是jobmanager的堆上限,taskmanager.heap.size是taskmanager的堆上限,taskmanager.numberOfTaskSlots是taskmanager上的slot数量;
- 打开文件/usr/local/work/flink-1.7.0/conf/masters,里面只保留以下这一行内容,表示dubhe做master:
dubhe:8081
- 打开文件/usr/local/work/flink-1.7.0/conf/slaves,里面只保留以下这一行内容,表示merak做slave:
merak
启动集群
/usr/local/work/flink-1.7.0/bin/start-cluster.sh
- 控制台提示输入merak的root账号密码,输入并回车,启动完成:
root@dubhe:~# /usr/local/work/flink-1.7.0/bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host dubhe.
root@merak's password:
Starting taskexecutor daemon on host merak.
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20181223162833650.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
- 至此,集群环境的搭建和启动都已完成,接下来就是测试和验证了;
配置SSH免密码登录(可选步骤)
- 启动集群时要求输入merak的密码,略有些麻烦,另外用stop-cluster.sh停止集群时也要输入merak的密码,因此推荐您配置这两台机器的SSH免密码登录,具体操作步骤可以参考文章《Docker下,实现多台机器之间相互SSH免密码登录》,虽然标题是"Docker下",但文中的设置在树莓派上同样生效;
验证集群环境
- 为了验证集群环境是否正常,我准备了一个Flink应用,该应用是基于官方的经典demo改造的,可以消费来自维基百科的实时消息,实时计算每个编辑者15秒内修改的字节数,这个应用被构建成文件wikipediaeditstreamdemo-1.0-SNAPSHOT.jar,下载地址:https://download.csdn.net/download/boling_cavalry/10870815
- PS:下载资源需要消耗您一个CSDN积分,作者想设置成免费下载,但一分是系统的最低要求;
- 将下载好的wikipediaeditstreamdemo-1.0-SNAPSHOT.jar文件,通过网页提交,操作步骤如下图:
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2018122316583210.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20181223165954928.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
- 按照下图的步骤设置参数,其中红框2中的com.bolingcavalry.StreamingJob是应用类名,红框3是并行度,当前环境只有两个task slot,因此设置成2,点击了红框4中的Submit按钮后任务启动了:
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20181223170139868.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
- 如下图就是对维基百科的数据做实时计算后的输出结果:
![在这里插入图片描述 在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/20181223171014336.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70&x-oss-process=image/resize,w_1400/format,webp)
- 关于这个Flink应用的详情,您可以参考文章《Flink实战:消费Wikipedia实时消息》;
- 至此,Flink集群的搭建和相关验证都已完成,由于硬件限制无法做复杂的计算和处理,但这个环境作为学习和实验环境来使用还是挺适合的,希望本文能给您在搭建环境时提供一些参考;
欢迎关注阿里云开发者社区博客:程序员欣宸
学习路上,你不孤单,欣宸原创一路相伴...