在Linux上安装Flink以及编写打包WordCount程序
文章目录
0. 预备知识
想要了解任何Apache下的平台框架,官网一直都是一个不错的学习途径。
-
Flink是什么
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
-
无界流和有界流
任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一种流。
-
无界流:有定义流的开始,但没有定义流的结束。它们会无休止地产生数据。无界流的数据必须持续处理,需要以特定顺序摄取事件(如事件发生的顺序),并且数据被摄取之后需要立刻处理。
-
有界流:有定义流的开始,也有定义流的结束。有界流可以在摄取所有数据后再进行计算。有界流所有数据可以被排序,所以并不需要有序摄取。有界流处理通常被称为批处理。
-
-
-
应用场景
-
实时数仓与ETL
-
实时报表分析
-
实时智能推荐
-
流数据分析
-
-
基本组件
Flink架构体系基本上分三层(自顶向下)
- API&Libraries层 : 提供支撑流计算和批计算的接口,同时在此基础上抽象出不同的应用类型的组件库。
- Runtime核心层:Flink分布式计算框架的核心实现层,支持分布式Stream作业的执行、JobGraph到ExecutionGraph的映射转换、任务调度等。将DataStream和DataSet转成同意的可执行的Task Operator。
- 物理部署层: 目前Flink支持本地、集群、云、容器部署,Flink通过盖层能够支持不同平台的部署,用户可以根据需要选择使用对应的部署模式。
Flink集群
- Client客户端 负责将任务提交到集群,与JobManager构建Akka连接,然后将任务提交到JobManager,通过和JobManager之间进行交互获取任务执行状态。
- JobManager 负责整个Flink集群任务的调度以及资源的管理。
- TaskManager 相当于整个集群的Slave节点,负责具体的任务执行和对应任务在每个节点上的资源申请与管理。
1. 下载安装
本案例相关的运行环境
- 系统: Ubuntu 18.04
- Java环境: Java8
- Flink-7.6.1
- Maven-3.3.9
1.1 安装Flink
到Flink官网(https://flink.apache.org/downloads.html)下载安装包,这里我们选择的版本是flink-1.9.1-bin-scala_2.11.tgz,如果官网网速太慢也可以点击我分享的云盘链接(链接:https://pan.baidu.com/s/1TtwXJxfBjjuY4bULoikttg 密码:0e0y)进行下载。默认下载文件在用户主目录的Downloads中。然后,使用如下命令进行解压:
cd /home/silver/Downloads
sudo tar -zxvf flink-1.9.1-bin-scala_2.11.tgz -C /usr/local
修改目录名称,并设置权限,命令如下:
cd /usr/local
sudo mv ./ flink-1.9.1 ./flink
sudo chown -R silver:silver ./flink
Flink对于本地模式是开箱即用的,如果要修改Java运行环境,可以修改“/usr/local/flink/conf/flink-conf.yaml”文件中的env.java.home参数,设置为本地Java的绝对路径。
使用如下命令添加环境变量:
vim ~/.bashrc
在.bashrc文件中添加如下内容:
export FLNK_HOME=/usr/local/flink
export PATH=$FLINK_HOME/bin:$PATH
保存并退出.bashrc文件,然后执行如下命令让配置文件生效:
source ~/.bashrc
使用如下命令启动Flink:
cd /usr/local/flink
./bin/start-cluster.sh
使用jps命令查看进程:
/usr/local/flink$ jps 13936 Jps 13400 StandaloneSessionClusterEntrypoint 13854 TaskManagerRunner
如果能够看到TaskManagerRunner和StandaloneSessionClusterEntrypoint这两个进程,就说明启动成功。
Flink的JobManager同时会在8081端口上启动一个Web前端,可以在浏览器中输入“http://localhost:8081”来访问。
1.2 检查安装是否成功_自带WordCount测试样例
Flink安装包中自带了测试样例,这里可以运行WordCount样例程序来测试Flink的运行效果,具体命令如下:
cd /usr/local/flink/bin
./flink run /usr/local/flink/examples/batch/WordCount.jar
执行成功,可以看到如下输出结果:
2. 编程实现WordCount程序
2.1 安装Maven
Ubuntu中没有自带安装Maven,需要手动安装Maven。可以访问Maven官网下载安装文件,官网下载链接:http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.zip。 如果官网下载慢,也可以使用我分享的云盘链接下载:(链接:https://pan.baidu.com/s/1SDOldLVjZ3sb3ONww-lfpA 密码:awbc)。
下载完成之后ÿ