前言:
本文主要介绍如何将Flink以本地模式运行在单机
上。
本过程无需
)下载
1.1进入下载页面。如果你想让Flink与Hadoop进行交互(如HDFS或者HBase),请选择一个与你的Hadoop版本相匹配的Flink包。当你不确定或者只是想运行在本地文件系统上,请选择Hadoop 1.2.x对应的包。(因为我的hadoop是2.7.5,因此我选择的是下面1.7.1)
1.2解压
安装包
tar -zxvf flink-1.7.1-bin-hadoop27-scala_2.11.tgz
1.3主要目录介绍
进入conf
配置文件目录下,目录结构如下,主要配置文件为flink-conf.yaml
和slaves
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.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)
配置
对于本地模式,Flink是可以开箱即用的,在第一步配置文件
介绍的配置中,你不用去更改任何的默认配置
。
开箱即用的配置会使用默认的Java环境。如果你想更改Java的运行环境,你可以手动地设置环境变量JAVA_HOME
或者conf/flink-conf.yaml
中的配置项env.java.home
。
启动Flink
你现在就可以开始运行Flink了。解压已经下载的压缩包,然后进入新创建的flink目录。在那里,你就可以本地模式运行Flink了:
启动前
要防火墙关闭
在bin目录下,输入命令 ./start-cluster.sh
[root@master2 bin]# ./start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host master2.
Starting taskexecutor daemon on host master2.
测试
5.1JSP
查看进程
[root@master2 bin]# jps
2342 StandaloneSessionClusterEntrypoint
2795 TaskManagerRunner
2814 Jps
5.2在web页面查看 http://192.168.10.3:8081(主机ip:8081)
练习
若见到上图页面,就说明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文件更新后会控制台中会自动显示新增的数据。