最详细Flink安装以及案例之WordCount

时间:2024-03-30 12:10:54

前言:本文主要介绍如何将Flink以本地模式运行在单机上。

运行环境

  • Linux-CentOS6.8
  • JDK-1.8
  • hadoop-2.7.5 (本过程无需)
  • flink-1.7.1-bin-hadoop27-scala_2.11

flink安装配置过程

1.下载

1.1进入下载页面。如果你想让Flink与Hadoop进行交互(如HDFS或者HBase),请选择一个与你的Hadoop版本相匹配的Flink包。当你不确定或者只是想运行在本地文件系统上,请选择Hadoop 1.2.x对应的包。(因为我的hadoop是2.7.5,因此我选择的是下面1.7.1)
最详细Flink安装以及案例之WordCount
1.2解压安装包

tar -zxvf flink-1.7.1-bin-hadoop27-scala_2.11.tgz

1.3主要目录介绍
进入conf配置文件目录下,目录结构如下,主要配置文件为flink-conf.yamlslaves
最详细Flink安装以及案例之WordCount
1.3.1配置flink-conf.yaml解析如下:

 jobmanager.rpc.address: localhost1   --jobManager 的IP地址

 jobmanager.rpc.port: 6123   --jobManager 的端口,默认为6123

 jobmanager.heap.mb --jobManager 的JVM heap大小  

 taskmanager.heap.mb  --taskManager的jvm heap大小设置

 taskmanager.numberOfTaskSlots  --taskManager中taskSlots个数,最好设置成work节点的CPU个数相等

 parallelism.default  --并行计算数

 fs.default-scheme --文件系统来源

 fs.hdfs.hadoopconf:  --hdfs置文件路径

 jobmanager.web.port    -- jobmanager的页面监控端口

1.3.2 内存管理配置

Flink默认上分配taskmanager.heap.mb配置值得70%留它管理,内存的管理让flinK批量处理效果很高;并且flink不会出现OutMemoryException的问题,因为flink知道预留多少内存来执行程序;如果flink运行的程序所需要的内存超过了它所管理的内存,Flink就可以利用磁盘;总而言之,flink的内存管理提高了鲁棒性和系统的速度;下面就介绍管理内存的配置文件:

  taskmanager.memory.fraction  --管理内存的百分比,默认0.7
  taskmanager.memory.size    --taskManager 具体管理内存的大小;此配置重写
  taskmanager.memory.fraction的配置
  taskmanager.memory.segment-size --内存管理器所使用的内存缓冲区的大小和网络堆栈字节
  taskmanager.memory.preallocate  --taskmanager是否启动时管理所有的内存

1.3.3 slaves 中配置节点机器的ip主机名

2.环境准备

2.1你可以执行下面的命令来查看是否已经正确安装了Java了。

java -version

这条命令会输出类似于下面的信息:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

3.配置

对于本地模式,Flink是可以开箱即用的,在第一步配置文件介绍的配置中,你不用去更改任何的默认配置

开箱即用的配置会使用默认的Java环境。如果你想更改Java的运行环境,你可以手动地设置环境变量JAVA_HOME或者conf/flink-conf.yaml中的配置项env.java.home

4.启动Flink

你现在就可以开始运行Flink了。解压已经下载的压缩包,然后进入新创建的flink目录。在那里,你就可以本地模式运行Flink了:
启动前防火墙关闭
在bin目录下,输入命令 ./start-cluster.sh

[[email protected] bin]# ./start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host master2.
Starting taskexecutor daemon on host master2.

5.测试

5.1JSP查看进程

[[email protected] bin]# jps
2342 StandaloneSessionClusterEntrypoint
2795 TaskManagerRunner
2814 Jps

5.2在web页面查看 http://192.168.10.3:8081(主机ip:8081)
最详细Flink安装以及案例之WordCount

6.练习

若见到上图页面,就说明flink配置成功了,下面就以wordcount为案例运行,案例代码在下载的flink目录下面的自带案例

/usr/local/flink-1.7.1/examples/streaming/SocketWindowWordCount.jar

6.1、在控制台窗口1中启动一个本地服务

nc -l -p 9000

6.2、在控制台窗口2中提交flink程序

bin/flink run examples/streaming/SocketWindowWordCount.jar   --hostname localhost   
Starting execution of program

说明:该程序每隔5秒统计一次接收的数据中的单词个数
6.3、在控制台窗口3中打开out日志文件
log目录下的out文件会统计flink的执行结果。

cd /opt/flink-1.6.1/log
tail -f flink-root-taskexecutor-0-localhost.localdomain.out

out文件更新后会控制台中会自动显示新增的数据。

6.4、在控制台1中输入语句,在控制台3中查看统计结果,如下图所示:
最详细Flink安装以及案例之WordCount
6.5、在flink的web中查看运行的job
最详细Flink安装以及案例之WordCount