初识Apache+Flink


一、什么是Apache Flink

	Apache Flink 是一个框架和分布式处理引擎,用于在*无边界和有边界*数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

二、Flink 架构中的重要方面

1、处理无界和有界数据

	任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。

数据可以被作为 *无界* 或者 *有界* 流来处理。
(1)无界流
	有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,即数据被摄取后需要立刻处理。我们不能等到所有数据都到达再处理,因为输入是无限的,在任何时候输入都不会完成。处理无界数据通常要求以特定顺序摄取事件,例如事件发生的顺序,以便能够推断结果的完整性
(2)有界流
	有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理
	Apache Flink 擅长处理无界和有界数据集

2、部署应用到任意地方

	Apache Flink 是一个分布式系统,它需要计算资源来执行应用程序。Flink 集成了所有常见的集群资源管理器,例如Hadoop YARN、Apache Mesos和Kubernetes,但同时也可以作为独立集群运行。

3、运行任意规模应用

	Flink 旨在任意规模上运行有状态流式应用。因此,应用程序被并行化为可能数千个任务,这些任务分布在集群中并发执行。所以应用程序能够充分利用无尽的 CPU、内存、磁盘和网络 IO。而且 Flink 很容易维护非常大的应用程序状态。其异步和增量的检查点算法对处理延迟产生最小的影响,同时保证精确一次状态的一致性。

4、利用内存性能

	有状态的 Flink 程序针对本地状态访问进行了优化。任务的状态始终保留在内存中,如果状态大小超过可用内存,则会保存在能高效访问的磁盘数据结构中。任务通过访问本地(通常在内存中)状态来进行所有的计算,从而产生非常低的处理延迟。Flink 通过定期和异步地对本地状态进行持久化存储来保证故障场景下精确一次的状态一致性。

三、Standalone集群安装和部署

Standalone是Flink的独立部署模式,它不依赖其他平台。

需要准备3台linux机器,规划图如下:

img

1、下载flink软件包
wget http://archive.apache.org/dist/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
2、解压Flink的压缩包
tar -zxvf flink-1.9.1-bin-scala_2.11.tgz
cd  flink-1.9.1
3、修改配置
conf目录为配置文件目录,bin目录为执行命令目录
进入conf目录,编辑flink-conf.yaml文件

jobmanager.rpc.address: hadoop101   # 更改为jobmanager的主机名

jobmanager.rpc.port : 6123   # 端口默认即可

jobmanager.heap.size: 1024m  # 根据自己机器性能定

taskmanager.heap.size: 1024m  # 根据自己机器性能定

taskmanager.numberOfTaskSlot : 3  # 每台机器可用的Slot数量,参数默认为1,修改为3,表示每一个TaskManager有3个Slot

parallelism.default: 1      #  并行度为1

jobmanager.heap.size:     # JobManager 节点可用的内存大小

taskmanager.heap.size:   # TaskManager节点可用的内存大小

parallelism.default:      # 默认情况下Flink任务的并行度


Slot和parallelism的区别:

Slot是静态的概念,失职TaskManager具有的并发执行能力。

parallelism是动态的概念,是指程序运行时实际使用的并发能力。
编辑conf/slaves配置文件

hadoop101
hadoop102
hadoop103
编辑conf/master配置文件

hadoop101:8081  #  (jobmanager所在机器,8081为webUI的端口)
将配置好的文件分发给另外两台机器

scp -r   flink-1.9.1 root@hadoop102:/root/

scp -r   flink-1.9.1 root@hadoop103:/root/

测试

在bin目录下

./flink-1.9.1/bin/start-cluster.sh   #   启动脚本

启动后可以使用jps查看

然后在浏览器中 使用 jobmanager的8081端口登录,即hadoop:8081

flink-1.9.1# bin/flinkrun./examples/streaming/WordCount.jar  # 官方给的测试jar包

img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值