5.13、分布式内存计算Flink环境部署
5.13.1、简介
Flink同Spark一样,是一款分布式内存计算引擎,可以支撑海量数据的分布式计算。
Flink在大数据体系同样是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算。
在大数据领域广泛应用,是目前世界上除去Spark以外,应用最为广泛的分布式计算引擎。
我们将基于Hadoop集群,部署Flink Standalone集群。
Spark更加偏向于离线计算而Flink更加偏向于实时计算。
注意:
本小节的操作,基于:大数据集群(Hadoop生态)安装部署环节中所构建的Hadoop集群
如果没有Hadoop集群,请参阅大数据集群(Hadoop生态)安装部署,部署好环境。
5.13.2、安装
1、【node1操作】下载安装包
wget https://archive.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz
# 解压
tar -zxvf flink-1.10.0-bin-scala_2.11.tgz -C /export/server/
# 软链接
ln -s /export/server/flink-1.10.0 /export/server/flink
2、【node1操作】修改配置文件,conf/flink-conf.yaml
# 切换至/export/server/flink/conf
cd /export/server/flink/conf
# 编辑文件
vim flink-conf.yaml
在flink-conf.yaml
中清空内容(按键dG),并添加以下内容:
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager JVM heap 内存大小
jobmanager.heap.size: 1024m
# TaskManager JVM heap 内存大小
taskmanager.heap.size: 1024m
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
jobmanager.web.port: 8081
可能出现的问题:
- 在可插入状态下,直接粘贴,会显示全部内容被注释掉。
解决方法:
- 使用ESC退出可编辑状态,输入
:set paste
,然后按下i
键,再次进行粘贴内容即可。
3、【node1操作】,修改配置文件,conf/slaves
# 切换至/export/server/flink/conf
cd /export/server/flink/conf
# 编辑文件
vim slaves
在slaves
中清空内容,并添加以下内容:
node1
node2
node3
4、【node1操作】分发Flink安装包到其它机器
cd /export/server
scp -r flink-1.10.0 node2:`pwd`/
scp -r flink-1.10.0 node3:`pwd`/
5、【node2、node3操作】
# 配置软链接
ln -s /export/server/flink-1.10.0 /export/server/flink
6、【node1操作】,启动Flink
/export/server/flink/bin/start-cluster.sh
7、验证Flink启动
# 浏览器打开
http://node1:8081
需要先停止Spark,不然进去看到的页面是Spark。
8、提交测试任务
【node1执行】
/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar