Linux部署Flink环境
注意
本小节的操作,基于:大数据集群(Hadoop生态)安装部署环节中所构建的Hadoop集群
如果没有Hadoop集群,请参阅前置内容,部署好环境。
参考文章
14-Linux部署Hadoop集群:http://t.csdnimg.cn/ptHa3
简介
Flink同Spark一样,是一款分布式内存计算引擎,可以支撑海量数据的分布式计算。
Flink在大数据体系同样是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算。
在大数据领域广泛应用,是目前世界上除去Spark以外,应用最为广泛的分布式计算引擎。
我们将基于前面构建的Hadoop集群,部署Flink Standalone集群
Spark更加偏向于离线计算而Flink更加偏向于实时计算。
Flink官网:https://flink.apache.org/
安装
-
【node1操作】下载安装包
- 下载
shellwget --no-check-certificate https://archive.apache.org/dist/flink/flink-1.10.0/flink-1.10.0-bin-scala_2.11.tgz- 解压
shelltar -zxvf flink-1.10.0-bin-scala_2.11.tgz -C /export/server/- 软链接
shellln -s /export/server/flink-1.10.0 /export/server/flink -
【node1操作】修改配置文件,
conf/flink-conf.yaml进入该flink/conf目录
shellcd /export/server/flink/conf/使用vim编辑
flink-conf.yamlshellvim flink-conf.yaml使用粘贴命令
set paste,粘贴一下全部内容yaml# 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 -
【node1操作】,修改配置文件,
conf/slavesshellnode1 node2 node3 -
【node1操作】分发Flink安装包到其它机器
shellcd /export/server scp -r flink-1.10.0 node2:`pwd`/ scp -r flink-1.10.0 node3:`pwd`/ -
【node2、node3操作】
shell# 配置软链接 ln -s /export/server/flink-1.10.0 /export/server/flink -
【node1操作】,启动Flink
- 关闭spark(不关闭的话会占用8081端口)
shell/export/server/spark/sbin/stop-all.sh- 启动flink
shell/export/server/flink/bin/start-cluster.sh- 启动成功的控制台
shell[root@node1 server]# /export/server/flink/bin/start-cluster.sh Starting cluster. Starting standalonesession daemon on host node1. [INFO] 1 instance(s) of taskexecutor are already running on node1. Starting taskexecutor daemon on host node1. [INFO] 1 instance(s) of taskexecutor are already running on node2. Starting taskexecutor daemon on host node2. [INFO] 1 instance(s) of taskexecutor are already running on node3. Starting taskexecutor daemon on host node3.- 使用jps查看进程
shell[root@node1 server]# jps 2629 NodeManager 3014 WebAppProxyServer 1898 DataNode 4140 QuorumPeerMain 2477 ResourceManager 2222 SecondaryNameNode 8978 TaskManagerRunner 8148 TaskManagerRunner 1752 NameNode 5081 HRegionServer 4989 HMaster 8637 StandaloneSessionClusterEntrypoint 9087 Jps可以看到
StandaloneSessionClusterEntrypoint管理者进程和TaskManagerRunner工作者进程,说明启动成功。 -
验证Flink启动
shell# 浏览器打开 http://192.168.149.131:8081
按正常来讲,这里应该是6个总任务数,3个进程。但是我这里是12个总数,6个进程(有大佬能指点一下吗)。

-
提交测试任务
【node1执行】
shell/export/server/flink/bin/flink run /export/server/flink-1.10.0/examples/batch/WordCount.jar