Apache Flink是一个快速、可扩展的流处理框架,经常与Apache Hadoop和Apache Spark进行比较。在处理实时数据方面,它优于Hadoop MapReduce,而在批处理方面则与Spark不相上下。Flink on Yarn是Flink使用Apache Hadoop Yarn作为资源管理器的部署选项之一。
一、Flink on Yarn如何配置
在启动Flink on Yarn之前,您需要为Flink on Yarn创建并配置一个Yarn集群。要用Flink on Yarn运行任务,您需要配置用于启动Application Master(简称 “AM”)的Java可执行文件。配置AM时需要以下参数:
- yarn.cluster.framework=flink-yarn-session :此参数告诉Yarn使用Flink作为引擎运行您的应用程序
- jobmanager.memory.process.size=MemorySize :指定JobManager进程的最大内存使用
- taskmanager.memory.process.size=MemorySize :指定TaskManager进程的最大内存使用
- jobmanager.rpc.address=name:port :指定JobManager绑定的网络地址和端口
- parallelism.default=TheDefaultParallelismArg :Flink在没有命令行参数或作业配置中指定并行任务数时将使用的默认并行任务数
以下是一个示例AM启动脚本:
java -classpath $FLINK_DIST/lib/flink-dist_$SCALA_VERSION-$FLINK_VERSION.jar:$FLINK_DIST/lib/flink-shaded-hadoop-2-uber-$FLINK_VERSION.jar \ -Dlog4j.configuration=file:$FLINK_DIST/conf/log4j.properties \ org.apache.flink.yarn.entry.YarnApplicationMasterRunner \ --jarfile /path/to/your/flink-project-[version]-jar.jar \ --yarn-executor-memory 512 \ --taskmanager-count 3 \ --name MyFlinkApplication \ --jobmanager-memory 1024 \ --detached
二、Flink on Yarn需要集群吗
是的,Flink on Yarn需要Yarn集群。Flink on Yarn还需要Hadoop HDFS来存储运行时的数据和应用程序的JAR文件等资源。
三、Flink on Yarn集群搭建
以下是安装Flink on Yarn集群的一般步骤:
- 安装Yarn
- 安装Hadoop HDFS
- 下载并解压Flink二进制文件
- 将Flink二进制文件添加到您的PATH环境变量中
- 在Flink的conf目录中创建文件“flink-conf.yaml”
- 编辑“flink-conf.yaml”
- 根据自己的需要,配置参数“yarn.application-attempts” 和 “yarn.application-attempt-id”
- 在HDFS上创建文件夹并设置相应权限
- 运行JobManager和TaskManager
有关更详细的指导,请参阅官方文档。
四、Flink on Yarn命令行参数
Flink on Yarn的命令行参数可以直接在启动应用程序时进行指定,也可以在FLINK_CONF_DIR/flink-conf.yaml中预先设置。
以下是一些常见参数:
- --detached :以“detached”模式运行AM
- --name MyFlinkApplication :指定应用程序的名称
- --queue TheQueueName :指定要使用哪个队列运行应用程序
- --jobManagerMemory MemorySize :指定JobManager进程的最大内存使用
- --taskManagerCount Count :指定要启动多少个TaskManager实例
- --taskManagerMemory MemorySize :指定TaskManager进程的最大内存使用
五、Flink on Yarn搭建需要配置master么
Flink on Yarn需要您设置一个JobManager,但不需要一个独立的Master节点。JobManager负责分配任务到TaskManager并管理它们的生命周期。JobManager和TaskManager都运行在Yarn集群中,作为Yarn应用程序的一部分。
六、小结
总之,Flink on Yarn是一种适用于使用Apache Hadoop Yarn作为资源管理器的Flink部署方式。它需要一个Yarn集群和一个Hadoop HDFS,可以通过配置AM启动脚本来使用。进行集群搭建和设置JobManager后,就可以使用Flink on Yarn运行您的应用程序了。