做书评的网站,如何推广一个新的app,江苏住房城乡建设网站,河北建设网上办事大厅一、常见部署模式分类
1. 按是否依赖外部资源调度
1.1 Standalone 模式 独立模式 (Standalone) 是独立运行的#xff0c;不依赖任何外部的资源管理平台#xff0c;只需要运行所有 Flink 组件服务 1.2 Yarn 模式 Yarn 模式是指客户端把 Flink 应用提交给 Yarn 的 ResourceMa…一、常见部署模式分类
1. 按是否依赖外部资源调度
1.1 Standalone 模式 独立模式 (Standalone) 是独立运行的不依赖任何外部的资源管理平台只需要运行所有 Flink 组件服务 1.2 Yarn 模式 Yarn 模式是指客户端把 Flink 应用提交给 Yarn 的 ResourceManager, Yarn 的 ResourceManager 会在 Yarn 的 NodeManager 上创建容器。在这些容器上Flink 会部署 JobManager 和 TaskManager 的实例从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源 2. 按集群的生命周期和执行位置
2.1 会话模式
会话模式 (Session Mode) 是指先启动一个集群保持一个会话并且确定所有的资源然后向集群提交作业所有提交的作业会竞争集群中的资源从而会出现资源不足作业执行失败的情况会话模式比较适合于单个规模小、执行时间短的大量作业
2.2 单作业模式
单作业模式 (Per-Job Mode) 是指为每一个提交的作业启动一个集群由客户端运行应用程序然后启动集群作业被提交给 JobManager进而分发给 TaskManager 执行。作业作业完成后集群就会关闭所有资源也会释放。单作业模式在生产环境运行更加稳定所以是实际应用的首选模式单作业模式一般需要借助一些资源管理框架来启动集群比如 YARN、Kubernetes
2.3 应用模式
应用模式 (Application Mode) 是指为每一个提交的应用单独启动一个 JobManager也就是创建一个集群。这个 JobManager 只为执行这一个应用而存在执行结束之后 JobManager 也就关闭了。这一模式下没有客户端的存在应用模式与单作业模式都是提交作业之后才创建集群单作业模式是通过客户端来提交作业的客户端解析出的每一个作业对应一个集群而应用模式下是直接由 JobManager 执行应用程序的并且即使应用包含了多个作业也只创建一个集群
二、常见部署模式组合
Standalone 会话模式Standalone 应用模式Yarn 会话模式Yarn 单作业模式Yarn 应用模式
三、独立模式安装
1. 单节点安装 flink 下载地址https://flink.apache.org/downloads/ 下载 flink 安装包flink-1.10.1-bin-scala_2.12.tgz 将安装包上传到虚拟机节点并解压缩 tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C /opt/module
cd /opt/module
mv flink-1.10.1 flink进入 flink 安装目录执行启动命令并查看进程 cd /opt/module/flink
bin/start-cluster.shjps访问 http://hadoop102:8081 进入 flink 集群和任务监控管理 Web 页面 关闭 flinkbin/stop-cluster.sh
2. 集群安装
2.1 集群规划
节点服务器hadoop102hadoop103hadoop104角色JobManagerTaskManagerTaskManager
2.2 步骤 下载 flink 安装包flink-1.10.1-bin-scala_2.12.tgz 将安装包上传到 hadoop102 并解压缩 tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C /opt/module
cd /opt/module
mv flink-1.10.1 flink进入 flink 安装目录下的 conf 目录修改配置文件 flink-conf.yaml cd /opt/module/flink/conf
vim flink-conf.yaml#修改 jobmanager 内部通信主机名
jobmanager.rpc.address: hadoop102
jobmanager.rpc.port: 6123修改 conf 目录下的 slaves 文件配置 taskmanager 节点 vim slaves #1.13版本为 workers 文件
#添加内容
hadoop103
hadoop104flink-conf.yaml 文件中常用配置项 #对 JobManager 进程可使用到的全部内存进行配置包括 JVM 元空间和其他开销默认为 1600M可以根据集群规模进行适当调整
jobmanager.memory.process.size: 1600#对 TaskManager 进程可使用到的全部内存进行配置包括 JVM 元空间和其他开销默认为 1600M可以根据集群规模进行适当调整
taskmanager.memory.process.size: 1600#对每个 TaskManager 能够分配的 TaskSlot 数量进行配置默认为 1可根据 TaskManager 所在的机器能够提供给 Flink 的 CPU 数量决定。Slot 就是 TaskManager 中具体运行一个任务所分配的计算资源
taskmanager.numberOfTaskSlots: 1#Flink 任务执行的默认并行度优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量
parallelism.default: 1分发 flink 安装目录到 hadoop103 和 hadoop104 在 hadoop102 上启动 flink 集群 cd /opt/module/flink
bin/start-cluster.shjps访问 http://hadoop102:8081 查看 flink 监控页面
3. 提交任务
3.1 会话模式提交 启动 Flink 集群服务 在 hadoop102 中启动 netcat 网络端口 nc -lk 7777Web 页面提交 将编码好的 Flink maven 工程打成 jar 包访问 http://hadoop102:8081 进入 flink 监控页面选择左侧的 Submit New Job 选项菜单点击 Add New 按钮然后选择 jar 包进行上传点击页面上上传好的 jar 包项配置填写主程序类全类名、启动参数项、并行度等点击 submit 提交任务在页面左侧的 overview 和 jobs 等菜单选项下查看任务运行情况一个 job 所占据的 TaskSlots 数等于该 job 中最大的并行度 命令行提交 #提交任务bin/flink run -m [jobmanager主机和端口] -c [主程序类全类名] -p [并行度] [jar包的绝对路径] [--param1 value1 --param2 value2 ...]
cd flink
bin/flink run -m hadoop102:8081 -c com.app.wc.StreamWordCount2 -p 3 /project/FlinkTutorial/target/FlinkTutorial-1.0-SNAPSHOT.jar --host localhost --port 7777#查看job-a 可以查看已经取消的job
bin/flink list [-a]#取消job
bin/flink cancel [jobId]3.2 应用模式提交 不能使用 start-cluster.sh 命令启动集群 将编码好的 Flink maven 工程打成 jar 包并将 jar 包上传到 flink 安装目录下的 lib 目录 启动 JobManager cd /opt/module/flink
bin/standalone-job.sh start --job-classname com.app.wc.StreamWordCount2启动 TaskManager cd /opt/module/flink
bin/taskmanager.sh start访问 http://hadoop102:8081 查看 flink 监控页面的作业执行 关闭 cd /opt/module/flink
bin/standalone-job.sh stop
bin/taskmanager.sh stop4. 高可用集群安装
4.1 集群规划
节点服务器hadoop102hadoop103hadoop104角色JobManagerJobManager / TaskManagerTaskManager
4.2 步骤 在 hadoop102 上进入 flink 目录下的 conf 目录修改 flink-conf.yaml 文件 cd /opt/module/flink/conf
vim flink-conf.yaml#添加内容
high-availability: zookeeper
high-availability.storageDir: hdfs://hadoop102:9820/flink/standalone/ha
high-availability.zookeeper.quorum: hadoop102:2181,hadoop103:2181,hadoop104:2181
high-availability.zookeeper.path.root: /flink-standalone
high-availability.cluster-id: /cluster_atguigu修改 masters 文件 vim masters
#添加
hadoop102:8081
hadoop103:8081分发配置到其他节点 启动 #保证hadoop环境变量配置生效
#启动 hadoop 集群和 Zookeeper 集群
#启动 flink 集群
cd /opt/module/flink
bin/start-cluster.sh访问http://hadoop102:8081 和 http://hadoop103:8081
四、Yarn 模式安装
1. 安装步骤 下载安装包 flink 1.8 版本之前可以直接下载基于 hadoop 版本编译的安装包flink 1.8 及之后的版本除了下载基本的安装包之外还需要下载 Hadoop 相关版本的组件如 flink-shaded-hadoop-2-uber-2.7.5-10.0.jar并将该组件上传至 Flink 的 lib 目录下flink 1.11 版本之后不再提供 flink-shaded-hadoop-* 的 jar 包而是通过配置环境变量完成与 Yarn 集群的对接 将安装包上传到虚拟机并解压缩 tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C /opt/module
cd /opt/module
mv flink-1.10.1 flink进入 conf 目录修改 flink-conf.yaml 文件 cd /opt/module/flink/conf
vim flink-conf.yaml#修改
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 8
parallelism.default: 1确保正确安装 Hadoop 集群和配置 Hadoop 环境变量 sudo vim /etc/profile.d/my_env.shexport HADOOP_HOME/opt/module/hadoop
export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATHhadoop classpath2. 提交任务
2.1 会话模式提交 启动 Hadoop 集群 执行脚本命令向 Yarn 集群申请资源开启一个 Yarn 会话启动 Flink 集群 cd /opt/module/flink
bin/yarn-session.sh -nm test#-n 参数指定 TaskManager 数量
#-s 参数指定 slot 数量
#-d分离模式如果你不想让 Flink YARN 客户端一直前台运行可以使用这个参数即使关掉当前对话窗口YARN session 也可以后台运行。
#-jm(--jobManagerMemory)配置 JobManager 所需内存默认单位 MB。
#-nm(--name)配置在 YARN UI 界面上显示的任务名。
#-qu(--queue)指定 YARN 队列名。
#-tm(--taskManager)配置每个 TaskManager 所使用内存提交作业 Web UI 提交同独立模式 命令行提交 #1.将打包好的任务运行 JAR 包上传至集群
#2.执行命令
cd /opt/module/flink
bin/flink run -c com.app.wc.StreamWordCount2 FlinkTutorial-1.0-SNAPSHOT.jar访问 yarn Web UI 界面或 flink Web UI 界面查看作业执行情况
2.2 单作业模式提交 启动 Hadoop 集群 直接向 Yarn 提交一个单独的作业从而启动一个 Flink 集群 cd /opt/module/flink
#命令一
bin/flink run -d -t yarn-per-job -c com.app.wc.StreamWordCount2 FlinkTutorial-1.0-SNAPSHOT.jar#命令二
bin/flink run -m yarn-cluster -c com.app.wc.StreamWordCount2 FlinkTutorial-1.0-SNAPSHOT.jar访问 yarn Web UI 界面或 flink Web UI 界面查看作业执行情况 取消作业 cd /opt/module/flink
bin/flink list -t yarn-per-job -Dyarn.application.idapplication_XXXX_YY
bin/flink cancel -t yarn-per-job -Dyarn.application.idapplication_XXXX_YY jobId2.3 应用模式提交 启动 Hadoop 集群 执行命令提交作业 #上传 jar 包到集群
cd /opt/module/flink
bin/flink run-application -t yarn-application -c com.app.wc.StreamWordCount2 FlinkTutorial-1.0-SNAPSHOT.jar#上传 jar 包到 hdfs
bin/flink run-application -t yarn-application
-Dyarn.provided.lib.dirshdfs://myhdfs/my-remote-flink-dist-dir
hdfs://myhdfs/jars/my-application.jar查看或取消作业 /opt/module/flink
bin/flink list -t yarn-application -Dyarn.application.idapplication_XXXX_YY
bin/flink cancel -t yarn-application -Dyarn.application.idapplication_XXXX_YY jobId3. 高可用配置 YARN 的高可用是只启动一个 Jobmanager, 当这个 Jobmanager 挂了之后, YARN 会再次启动一个, 本质是利用的 YARN 的重试次数来实现的高可用 在 yarn-site.xml 中配置 propertynameyarn.resourcemanager.am.max-attempts/namevalue4/valuedescriptionThe maximum number of application master execution attempts./description
/property分发配置到其他节点 在 flink-conf.yaml 中配置 yarn.application-attempts: 3 #要小于 yarn 的重试次数
high-availability: zookeeper
high-availability.storageDir: hdfs://hadoop102:9820/flink/yarn/ha
high-availability.zookeeper.quorum: hadoop102:2181,hadoop103:2181,hadoop104:2181
high-availability.zookeeper.path.root: /flink-yarn启动 yarn-session杀死 JobManager, 查看复活情况