广州网站建设小程序,沧浪手机网站建设方案,开发一个app需要多少钱 知乎,做网站和做app那个简单前言
Apache Flink#xff0c;作为一个开源的分布式处理引擎#xff0c;近年来在大数据处理领域崭露头角#xff0c;其独特的流处理和批处理一体化模型#xff0c;使得它能够在处理无界和有界数据流时展现出卓越的性能。本文旨在对Flink进行简要的前言性介绍#xff0c;以…前言
Apache Flink作为一个开源的分布式处理引擎近年来在大数据处理领域崭露头角其独特的流处理和批处理一体化模型使得它能够在处理无界和有界数据流时展现出卓越的性能。本文旨在对Flink进行简要的前言性介绍以及他的安装配置
初了解Flink
Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台用于对无界和有界数据流进行有状态计算。Flink是一个流数据与批数据一体化处理的模型既可以处理有界数据流批处理也可以处理无界数据流实时流处理。它更擅长流数据处理这在实时分析场景中特别有用。Flink设计的目标是在所有常见的集群环境中运行以内存执行速度和任意规模来执行计算。Flink的核心是用Java和Scala编写的一个流式的数据流执行引擎为数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。它提供了严格的精确一次性语义保证这意味着每个记录都只会被处理一次从而保证了数据处理的准确性。此外Flink的窗口API更加灵活、语义更丰富提供了事件时间语义可以正确处理延迟数据。与其他大数据处理框架相比如SparkFlink在实时流处理方面有着显著的优势。Flink的延迟是毫秒级别而Spark Streaming的延迟是秒级延迟。这使得Flink在处理需要高实时性的应用时更具竞争力。
Flink on yarn
Flink on Yarn是指Apache Flink与Apache Yarn的结合使用使得Flink任务能够在Yarn集群上进行调度和执行。这种结合使用充分利用了Yarn作为分布式集群资源管理框架的优势提高了集群资源的利用率和任务的执行效率。
Flink on Yarn主要分为两种模式Session-Cluster模式和Per-Job-Cluster模式。 Session-Cluster模式(会话模式) 在这种模式下首先需要在Yarn集群中初始化一个Flink集群称为Flink yarn-session并为其开辟指定的资源。这个Flink集群会常驻在Yarn集群中除非手动停止。一旦Flink集群初始化完成后续的Flink任务都可以提交到这个集群上执行。然而这种模式下创建的Flink集群会独占资源即使在没有Flink任务执行时这些资源也无法被Yarn上的其他任务使用这可能导致资源的浪费。 Per-Job-Cluster模式(job分离模式) 在这种模式下每次提交一个Flink任务时都会根据任务的需求向Yarn申请资源并创建一个新的Flink集群。每个Flink任务都在其独立的集群上执行任务之间互不影响。当任务执行完成后创建的Flink集群也会自动销毁释放资源。这种模式使得资源能够按需使用提高了资源的利用率。
Flink与Yarn的交互主要体现在资源申请、任务调度和容错处理等方面。Flink通过Yarn的ResourceManager申请资源并在获得资源后启动JobManager和TaskManager进程。JobManager负责任务的调度和协调而TaskManager负责执行具体的计算任务。如果JobManager或TaskManager进程异常退出Yarn会负责重新调度和启动这些进程确保任务的容错性。
总的来说Flink on Yarn模式使得Flink能够充分利用Yarn集群的资源提高任务的执行效率和资源的利用率。同时通过Yarn的调度和容错机制Flink任务的稳定性和可靠性也得到了保障。
安装部署
解压缩文件
tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/
添加环境变量
#FLINK_HOME
export FLINK_HOME/opt/module/flink-1.14.0
export PATH$PATH:$FLINK_HOME/bin
export HADOOP_CLASSPATHhadoop classpath
export HADOOP_CONF_DIR${HADOOP_HOME}/etc/hadoop
刷新环境变量使其生效
source /etc/profile
进入 conf 目录修改 flink-conf.yaml 文件可以使用默认值
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 1
parallelism.default: 1