MR-Flink-Spark任务提交-常用命令
MapReduce任务
MR任务提交在Hadoop集群
[root@node5 ~]# hadoop jar /software/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input/data.txt /output
hadoop jar:在Hadoop集群运行一个由Java编写的Jar包
/software/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar :要运行的Jar文件的路径
wordcount:指定要运行的主类
/input/data.txt :输入文件的位置和名称
/output 输出目录的路径
Flink任务
Standalone-Session
[root@node4 ~]# cd /software/flink-1.16.0/bin/
#向Flink集群中提交任务
[root@node4 bin]# ./flink run -m node1:8081 -d -Dpipeline.name=socket-wc -c com.flinkjava.code.SocketWordCount /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
Standalone-Application
[root@node1 ~]# cd /software/flink-1.16.0/bin/
#执行如下命令,启动JobManager
[root@node1 bin]# ./standalone-job.sh start --job-classname com.flinkjava.code.SocketWordCount
#在node1节点上启动TaskManager
[root@node1 ~]# cd /software/flink-1.16.0/bin/
[root@node1 bin]# ./taskmanager.sh start
#在node2节点上启动TaskManager
[root@node2 ~]# cd /software/flink-1.16.0/bin/
[root@node2 bin]# ./taskmanager.sh start
Yarn-Session
[root@node5 ~]# cd /software/flink-1.16.0/bin/
#启动Yarn Session集群,名称为jumc,每个TM有3个slot
[root@node5 bin]# ./yarn-session.sh -s 3 -nm jqmc -d
[root@node5 ~]# cd /software/flink-1.16.0/bin/
#执行如下命令,会根据.yarn-properties-<用户名>文件,自动发现yarn session 集群
[root@node5 bin]# ./flink run -c com.flinkjava.code.FlinkAppWithMultiJob /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
#yarn-properties-<用户名>文件误删的情况,也可以使用如下命令指定Yarn Session集群提交任务,-t 指定运行的模式
[root@node5 bin]# ./flink run -t yarn-session -Dyarn.application.id=application_1671646730912_0001 -c com.flinkjava.code.FlinkAppWithMultiJob /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
查看Yarn Session集群中任务列表, 后面跟上Yarn Application ID
[root@node5 bin]# ./flink list
------------------ Running/Restarting Jobs -------------------
59f6f9a45fd9a7655e93a94dff455b66 : first job (RUNNING)
7ui972d8f59ed0eb51d2d78912d4859 : second job (RUNNING)
t00899a2d43a44217802ca7e7512feb4 : first job (RUNNING)
取消Job
[root@node5 bin]# ./flink cancel 59f6f9a45fd9a7655e93a94dff455b66
[root@node5 bin]# ./flink cancel 7ui972d8f59ed0eb51d2d78912d4859
取消Flink任务
[root@node5 bin]# yarn application -kill application_8760977810832_0001
#Yarn Application模式提交任务命令
[root@node5 bin]# ./flink run-application -t yarn-application -c com.flinkjava.code.FlinkAppWithMultiJob /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
查看Flink 集群中的Job作业:flink list -t yarn-application -Dyarn.application.id=application_XXXX_YY
[root@node5 bin]# flink list -t yarn-application -Dyarn.application.id=application_1671610064817_0004
------------------ Running/Restarting Jobs -------------------
108a7b91cf6b797d4b61a81156cd4863 : first job (RUNNING)
5adacb416f99852408224234d9027cc7 : second job (RUNNING)
取消Flink集群中的Job作业:flink cancel -t yarn-application -Dyarn.application.id=application_XXXX_YY
[root@node5 bin]# flink cancel -t yarn-application -Dyarn.application.id=application_1671610064817_0004 108a7b91cf6b797d4b61a81156cd4863
停止集群,当取消Flink集群中所有任务后,Flink集群停止,也可以使用yarn application -kill ApplicationID 停止集群
[root@node5 bin]# yarn application -kill application_1671610064817_0004
[root@node5 bin]# ./flink run -t yarn-per-job -d -c com.flinkjava.code.FlinkAppWithMultiJob /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar
取消Job
#取消任务命令执行后对应的 Flink集群也会停止 :flink cancel -t yarn-per-job -Dyarn.application.id=application_XXXX_YY <jobId>
[root@node5 bin]# ./flink cancel -t yarn-per-job -Dyarn.application.id=application_1762010015732_0001 805542d84c9944480196ef73911d1b59
[root@node5 bin]# ./flink cancel -t yarn-per-job -Dyarn.application.id=application_1891710015732_0002 56365ae67b8e93b1184d22fa567d7ddf
Spark任务
spark-submit
--master: 指定提交到哪里, 比如 yarn local spark集群等
--deploy-mode: 部署模式 client cluster
--name: 设置应用的运行的名字
--jars: 加载一些第三方的jar包
--conf: 设置配置信息
方式一 key =value
方式二 "key=value"
--driver-memory: 设置Driver的内容. 一般都是默认1GB 或者2GB 不会设置过高
--driver-cores: 设置driver占用的cpu的核数 要想此参数生效, 必须部署模式为cluster
--supervise: 如果Driver驱动失败, 是否可以重启
--executor-memory: 设置每个executor的内存大小
--executor-cores: 设置每个executor的CPU的核数
--num-executors: 设置启动多少个executor
--queue: 执行提交到那个队列, 一般主要使用在提交到具有队列的资源平台上, 例如Yarn