专栏首页实战docker树莓派3B搭建Flink集群

树莓派3B搭建Flink集群

今天的实战是用两台树莓派3B组建Flink1.7集群环境,模式是独立集群(Cluster Standalone);

操作步骤

  1. 准备操作系统;
  2. 安装JDK;
  3. 配置host;
  4. 安装Flink1.7;
  5. 配置参数;
  6. 设置两台树莓派相互SSH免密码登录;
  7. 启动Flink集群环境;
  8. 部署一个Flink应用,验证环境是否正常;

树莓派操作系统

两台树莓派的操作系统都是64位Debian,详细的安装步骤请参考《树莓派3B安装64位操作系统(树莓派无需连接显示器键盘鼠标)》;

安装JDK

安装JDK的操作步骤在《树莓派3B安装64位操作系统(树莓派无需连接显示器键盘鼠标)》一文中有详细说明,就不在此赘述了,注意两台机器都要安装;

安装Flink1.7

安装Flink的操作在两台树莓派上都要做,操作步骤一模一样,如下:

  1. 在Flink官网下载,地址是:https://flink.apache.org/downloads.html
  2. 如下图,选择红框中的版本:
  1. 下载的Flink安装包文件是flink-1.7.0-bin-hadoop28-scala_2.11.tgz,放在此位置:/usr/local/work;
  2. 在/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这两台机器上各执行一次,操作的步骤内容一模一样:

  1. 打开/etc/hosts文件,增加以下两行(请按照您的机器IP情况来写):
192.168.1.102 dubhe
192.168.1.104 merak
  1. 打开文件/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数量;

  1. 打开文件/usr/local/work/flink-1.7.0/conf/masters,里面只保留以下这一行内容,表示dubhe做master:
dubhe:8081
  1. 打开文件/usr/local/work/flink-1.7.0/conf/slaves,里面只保留以下这一行内容,表示merak做slave:
merak

至此,配置完成,可以启动集群了;

启动集群

  1. 在dubhe执行以下命令即可启动整个集群:
/usr/local/work/flink-1.7.0/bin/start-cluster.sh
  1. 控制台提示输入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.
  1. 在浏览器输入地址:http://192.168.1.102:8081,可以看到该集群环境的web页面,如下图所示:

至此,集群环境的搭建和启动都已完成,接下来就是测试和验证了;

配置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积分,作者想设置成免费下载,但一分是系统的最低要求;

  1. 将下载好的wikipediaeditstreamdemo-1.0-SNAPSHOT.jar文件,通过网页提交,操作步骤如下图:
  1. 点击下图红框中的Upload按钮,将文件提交:
  1. 按照下图的步骤设置参数,其中红框2中的com.bolingcavalry.StreamingJob是应用类名,红框3是并行度,当前环境只有两个task slot,因此设置成2,点击了红框4中的Submit按钮后任务启动了:
  1. 如下图就是对维基百科的数据做实时计算后的输出结果:

关于这个Flink应用的详情,您可以参考文章《Flink实战:消费Wikipedia实时消息》

至此,Flink集群的搭建和相关验证都已完成,由于硬件限制无法做复杂的计算和处理,但这个环境作为学习和实验环境来使用还是挺适合的,希望本文能给您在搭建环境时提供一些参考;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flink1.7从安装到体验

    版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_...

    程序员欣宸
  • Flink Native Kubernetes实战

    Flink Kubernetes与Flink Native Kubernetes是不同的概览,先回顾一下Flink Kubernetes:

    程序员欣宸
  • Flink1.9.2源码编译和使用

    用于学习,在IDEA上开发的flink job,能直接在IDEA运行,如果运行时依赖的flink框架是我们自己编译构建的,就做到了从业务到框架都可以修改源码并验...

    程序员欣宸
  • 数感一分钟11|小精灵倒水

    用户7378374
  • OpenGLES通过SurfaceTexture预览摄像头画面

    比如美颜相机那些,处理摄像头数据展示出来,为了提高预览的效率,所以这里使用了VBO和FBO,如果不知道这个,请看上面的文章。

    曾大稳
  • python爬取B站视频弹幕分析并制作词云

    视频地址:https://www.bilibili.com/video/BV19E411W7BE 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我...

    萌萌哒的瓤瓤
  • C语言 | 每日基础(13)

    读者:表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可以交换 a 和 b 的值。

    闫小林
  • Ross、何恺明等人提出PointRend:渲染思路做图像分割,显著提升Mask R-CNN性能

    实例分割是计算机视觉任务中一个重要的任务。传统的示例分割方法输入图像,并对图像的每个像素点进行预测,推断像素点所属的实例标签,并区分属于不同实例的像素点。然而,...

    机器之心
  • 何恺明团队又出神作:将图像分割视作渲染问题,性能显著提升!

    Facebook人工智能实验室Alexander Kirillov、吴育昕、何恺明、Ross Girshick等研究人员近日发表新论文,提出一种高效、高质量的目...

    新智元
  • 【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】五、OpenGL FBO数据缓冲区

    上一篇文章,讲解了如何使用EGL,并且提到EGL可以建立一个离屏渲染的缓冲区,这种离屏渲染的方式通常用于模拟整个渲染窗口,比如可以用于FFmpeg软编码,将显示...

    开发的猫

扫码关注云+社区

领取腾讯云代金券