Apache Flink 零基础入门(二十)Flink部署与作业的提交

之前我们都是基于Idea在本地进行开发,这种方式很适合开发以及测试,但是开发完之后,如何提交到服务器中运行?

Flink单机部署方式

本地开发和测试过程中非常有用,只要把代码放到服务器直接运行。

前置条件

jdk8
maven3
下载解压Flink,这里直接下载源码编译,直接从github上下载源码https://github.com/apache/flink/releases 选择1.8.1
然后解压到本地,解压后的文件夹如下:
在这里插入图片描述

编译

接下来我们需要编译这段源码。

mvn clean install -DskipTests -Dfast -Pvendor-repos -Dhadoop.version=2.6.0-cdh5.15.1

第一次编译需要花费很长时间,因为需要从网上下载一些依赖文件。

编译结果

编译成功后,会在当前目录下产生flink-dist/target/flink-1.8.1-bin文件夹,这个文件夹就是我们所需要的东西,把这个文件夹拷贝到服务器中就可以进行部署了。

单机模式部署

将flink-1.8.1-bin文件夹拷贝到服务器中,服务器中的目录如下:
在这里插入图片描述

启动服务

Apache Flink 零基础入门(二十)Flink部署与作业的提交_第1张图片
当前是stand-alone模式,输入jps可以查看:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第2张图片
可以在UI上面看到,默认ip是8081:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第3张图片

使用Flink跑一个WordCount程序

使用socket方式读入数据,然后统计数据wordcount
在服务器中开启socket:nc -lk 9999
然后运行命令:

./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9999

在这里插入图片描述
在WEB界面中可以查看任务:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第4张图片

测试数据

在nc终端输入数据(使用tab分割):
在这里插入图片描述

查看运行结果

在flink-1.8.1/log路径下,有一个flink--taskexecutor-.out文件,就是输出结果文件。
在这里插入图片描述

停止任务

可以在WEB界面上点击Running JOB,然后点击任务:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第5张图片
点击Cancel就可以取消这个任务了。这时,取消成功之后,可用slot就变为1了:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第6张图片

停止集群

使用命令./bin/stop-cluster.sh就可以了

Flink分布式standalone部署方式

我们在conf/flink-conf.yaml文件中配置主节点(jobmanager.rpc.address)的ip.
在conf/slaves文件中配置从节点(taskmanager)的ip

常用配置

jobmanager.rpc.address参数用来指向master节点的地址
jobmanager.heap.size 表示jobmanager节点可用的内存
taskmanager.heap.size表示taskmanager节点可用的内存
taskmanager.numberOfTaskSlots 每一个机器可用的CPU个数,决定了并行度
paraparallelism.default 表示任务的并行度 可以在代码层面覆盖
taskmanager.tmp.dirs taskmanager的临时数据存储目录

修改配置文件

修改conf/flink-conf.yaml文件:
jobmanager.rpc.address: swarm-manager(修改为本服务器的主机名)
修改conf/slaves文件:swarm-manager
使用命令./bin/start-cluster.sh启动集群,可以正常启动:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第7张图片
修改配置:
taskmanager.heap.size: 2048m
taskmanager.numberOfTaskSlots: 2
再次启动集群:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第8张图片
可以看到配置已经生效了。
这时再次使用命令nc -lk 9999 然后在另一个终端运行./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9999 开启一个任务。这时查看页面:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第9张图片
可以看到之前两个slots,现在已经用了一个,因为当前的并行度是1。

扩展和容错

现在我们输入jps命令时:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第10张图片
我们现在把TaskManagerRunner给Kill掉,然后在查看:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第11张图片
这时在查看Web页面:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第12张图片
可以看到都变成0了。
这时再启动taskmanager.sh
在这里插入图片描述
再次查看:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第13张图片

yarn方式部署

搭建Hadoop

下载Hadoop 2.6.0 解压,配置环境变量:
在这里插入图片描述
修改配置文件etc/hadoop/hadoop-env.sh ,配置java home export JAVA_HOME=/usr/jdk1.8.0_101
修改配置文件etc/hadoop/core-site.xml,配置:


    
        fs.defaultFS
        hdfs://swarm-manager:9000
    

修改配置文件etc/hadoop/hdfs-site.xml,配置:


    
        dfs.replication
        1
    
    
        hadoop.tmp.dir
        /home/iie4bu/app/tmp
    

修改配置文件slave 内容:swarm-manager
接下来配置yarn-site.xml

修改mapred-site.xml.template文件名为:mapred-site.xml ,内容如下:


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    


格式化hdfs,使用命令~/app/hadoop-2.6.0/bin$ ./hdfs namenode -format
启动hadoop,使用命令~/app/hadoop-2.6.0/sbin$ ./start-all.sh
使用jps查看启动状态:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第14张图片
使用WEB页面进行查看
首先查看hdfs:http://192.168.170.170:50070
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第15张图片
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第16张图片
然后查看yarn:http://192.168.170.170:8088

测试一下

测试HDFS :
在这里插入图片描述
没有问题!

Flink On Yarn

方式一:Flink初始化的时候就申请一个资源,并且作为一个服务常驻在yarn中。Flink 的job共用一个yarn session。资源不够用时,出现排队情况。
从flink1.8之后hadoop相关jar包需要额外下载:
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第17张图片
将下载后的flink-shaded-hadoop-2-uber-2.6.5-7.0.jar文件放到 flink-1.8.1/lib目录下,然后可以输入 ./bin/yarn-session.sh --help
./bin/yarn-session.sh参数:

-n  taskmanager的数量
-jm jobmanager的内存
-tm taskmanager的内存

方式二: 每次提交Flink job都申请一个yarn session,用完之后释放。任务之间不相互影响,任务之间是相互独立的。
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第18张图片

使用方式一

启动一个常服务./bin/yarn-session.sh -n 1 -jm 1024m -tm 4096m表示启动job manager是1GB的堆内存,task manager是4GB的堆内存。
使用这个命令之后,打开yarn页面,http://192.168.170.170:8088/cluster
Apache Flink 零基础入门(二十)Flink部署与作业的提交_第19张图片

使用方式二:./bin/flink run -m yarn-cluster -p 4 -yjm 1024m -ytm 4096m ./examples/batch/WordCount.jar

你可能感兴趣的:(Apache,Flink)