我会不间断的更新,维护,希望可以对正在找大数据工作的朋友们有所帮助.
Flink笔记03--Flink安装部署
Flink 支持多种部署模式:本地、集群(Standalone / YARN)、云(GCE / EC2)、kubenetes。下面实现的是Standalone模式的部署(未配置高可用)。
1、环境依赖及安装规划
- CentOS 6.9 ,三个节点分别为node1、node2、node3
备注:在上面的环境中已经安装了Hadoop(2.7)、Spark(2.3)等软件,当然这些不是必须的 - Java 1.8
- Flink 1.9.1 (flink-1.9.1-bin-scala_2.11.tgz)
下载网址:https://archive.apache.org/dist/flink/flink-1.9.1/ - 使用普通用户安装(我使用的是Spark),软件统一安装在 /opt/modules 目录下
- 选择node1作为主节点;node1、node2、node3作为从节点
2、安装步骤
与Spark软件的安装类似,Flink的安装并不复杂。
1、下载软件并解压缩到 /opt/modules 目录下;配置环境变量 FLINK_HOME,并使之生效;(node1)
2、修改配置文件,配置文件在 $FLINK_HOME/conf目录下(node1)
# masters 文件定义主节点,内容如下
node1:8081
# slaves 文件定义从节点,内容如下
node1
node2
node3
# flink-conf.yaml 配置文件
# jobmanager的hostname
jobmanager.rpc.address: node1
# 可选
# jobmanager的port
jobmanager.rpc.port: 6123
# jobmanager的可用堆内存量(单位为MB)
jobmanager.heap.size: 1024
# 每个taskmanager的可用内存量(单位为MB)
taskmanager.heap.size: 1024
# 每个taskmanager的可用cpu数量
taskmanager.numberOfTaskSlots: 1
# 应用程序默认并行度
parallelism.default: 1
3、将node1上的软件分发到node2、node3
3、系统启动
1、启动/关闭 集群服务
在主节点上(node1),执行$FLINK_HOME/bin/start-cluster.sh
使用 jps 分别检查node1、node2、node3上的进程:
node1:StandaloneSessionClusterEntrypoint、TaskManagerRunner
node2:TaskManagerRunner
node3:TaskManagerRunner
关闭服务,在主节点上执行,stop-cluster.sh
2、单独 启动/关闭 jobmanager、taskmanager
taskmanager.sh (start|start-foreground|stop|stop-all)
jobmanager.sh ((start|start-foreground) host)|stop|stop-all
3、web 界面
node1:8081 【node1:主节点;8081 web服务端口号】
图中标注1:集群中一共有6个 Task Slots
图中标注2:集群中一共有3个 Task Manager(分别为node1、node2、node3)
图中标注3:集群运行了0个Job
从Task Managers选项页上可以看见集群中有3个Task Manager
4、运行测试程序
1、使用命令行提交Flink程序。使用 $FLINK_HOME/bin/flink 命令提交Flink程序。
flink run /opt/modules/flink-1.9.1/examples/streaming/WordCount.jar
--input hdfs://node1:8020/user/spark/data/a.txt
--output hdfs://node1:8020/user/spark/data/flinkwordcount
备注:
1、运行测试程序的目的是验证安装的正确性,程序如何编写后文再将;
2、程序在集群中运行,所以最好将 hdfs 作为输入、输出。不要使用本地文件系统作为输入输出;
3、在Flink 1.9.1中要使用HDFS,需要从官方网站下载对应HDFS的jar包,放在 $FLINK_HOME/lib 目录下
2、使用Web界面提交Flink应用程序
按上图数字顺序点击,选择要执行的jar
最后可以看见作业运行的状态: