实时大数据技术flink概述和部署
一、Flink概述
Flink起源于一个名为Stratosphere的研究项目,目的是建立下一代大数据分析平台,于2014年4月16日成为Apache孵化器项目。
Apache Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,它基于同一个Flink流式执行模型(streaming execution model),能够支持流处理和批处理两种应用类型。
由于流处理和批处理所提供的SLA(服务等级协议)是完全不相同, 流处理一般需要支持低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独立的开源框架来实现其中每一种处理方案。
比较典型的有:实现批处理的开源方案有MapReduce、Spark;实现流处理的开源方案有Storm;Spark的Streaming 其实本质上也是微批处理。
Flink在实现流处理和批处理时,与传统的一些方案完全不同,它从另一个视角看待流处理和批处理,将二者统一起来:
Flink是完全支持流处理,也就是说作为流处理看待时输入数据流是无界的;
批处理被作为一种特殊的流处理,只是它的输入数据流被定义为有界的。
Flink 在流式计算方面的优势是开源领域"无人能及"的。
1、Flink发展史
2、Flink官方介绍
https://flink.apache.org/zh/
3、Flink的应用场景
可以看到,各种行业的众多公司都在使用Flink。具体来看,一些行业中的典型应用有:
-
电商和市场营销
举例:实时数据报表、广告投放、实时推荐
-
物联网(IOT)
举例:传感器实时数据采集和显示、实时报警,交通运输业
-
物流配送和服务业
举例:订单状态实时更新、通知信息推送
-
银行和金融业
举例:实时结算和通知推送,实时检测异常行为
二、Flink安装部署
-
前置说明
Flink1.13版本--2020年发布的里程碑版本
Standalone独立集群模式
-
上传Flink安装包,解压,配置环境变量
[root@hadoop10 modules]# tar -zxf flink-1.13.6-bin-scala_2.11.tgz -C /opt/installs/
[root@hadoop10 installs]# mv flink-1.13.6/ flink
[root@hadoop10 installs]# vim /etc/profile
export FLINK_HOME=/opt/installs/flink
export PATH=$PATH:$FLINK_HOME/bin
-
修改配置文件
vim /opt/installs/flink/conf/flink-conf.yaml
jobmanager.rpc.address: hadoop11
taskmanager.numberOfTaskSlots: 2
web.submit.enable: true
#历史服务器
jobmanager.archive.fs.dir: hdfs://hadoop11:8020/flink/completed-jobs/
historyserver.web.address: hadoop11
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://hadoop11:8020/flink/completed-jobs/
vim conf/masters
hadoop11:8081
vim conf/workers
hadoop11
hadoop12
hadoop13
配置hadoop环境变量,方便后续flink找到hadoop
vim /etc/profile
export HADOOP_CONF_DIR=/opt/installs/hadoop3.1.4/etc/hadoop
将资料下的flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
放到flink的lib目录下
-
分发
scp -r /opt/installs/flink hadoop12:/opt/installs/flink
scp -r /opt/installs/flink hadoop13:/opt/installs/flink
三、测试
start-dfs.sh
#启动集群
start-cluster.sh
#启动历史服务器
historyserver.sh start
观察webUI
http://hadoop11:8081/#/overview --- Flink集群管理界面
http://hadoop11:8082/#/overview --- Flink历史服务器管理界面
提交官方示例
flink run /opt/installs/flink/examples/batch/WordCount.jar
flink run /opt/installs/flink/examples/batch/WordCount.jar --input 输入数据路径 --output 输出数据路径
停止集群
stop-cluster.sh
总结
Apache Flink 是一个分布式系统,它需要计算资源来执行应用程序。Flink 集成了所有常见的集群资源管理器,例如 Hadoop YARN、 Apache Mesos 和 Kubernetes,但同时也可以作为独立集群运行。
Flink 被设计为能够很好地工作在上述每个资源管理器中,这是通过资源管理器特定(resource-manager-specific)的部署模式实现的。
Flink 可以采用与当前资源管理器相适应的方式进行交互。
部署 Flink 应用程序时,Flink 会根据应用程序配置的并行性自动标识所需的资源,并从资源管理器请求这些资源。
在发生故障的情况下,Flink 通过请求新资源来替换发生故障的容器。
提交或控制应用程序的所有通信都是通过 REST 调用进行的,这可以简化 Flink 与各种环境中的集成。
- 点赞
- 收藏
- 关注作者
评论(0)