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.yaml
shellvim 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/slaves
shellnode1 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