hadoop-flink完全分布式集群搭建
- 一、Local模式
- 二、Standalone 模式
- 1、软件要求
- 2、解压
- 3、修改配置文件
- 4、拷贝到各节点
- 5、配置环境变量
- 6、启动flink
- 7、启动HA
本次采用的系统为centos7
hadoop版本为2.7.7
flink版本为1.10.2 链接:https://pan.baidu.com/s/1E4Gm5Rla-f4mZ5XB7wvlyg
提取码:qwer
关于hadoop搭建请访问:Hadoop完全分布式集群搭建教程(一)
Flink 有三种部署模式,分别是 Local、Standalone Cluster 和 Yarn Cluster。
一、Local模式
对于 Local 模式来说,JobManager 和 TaskManager 会公用一个 JVM 来完成 Workload。如果要验证一个简单的应用,Local 模式是最方便的。实际应用中大多使用 Standalone 或者 Yarn Cluster,而local模式只是将安装包解压启动(./bin/start-local.sh)即可,在这里不在演示。
二、Standalone 模式
1、软件要求
- java版本必须为1.8.X或更高版本
2、解压
我们同样将文件解压在根目录下的opt中
#在opt目录下解压
tar zxvf flink-1.10.2-bin-scala_2.11.tgz
3、修改配置文件
进入conf文件夹下,修改masters、slaves、flink-conf.yaml文件
1. 修改slaves文件
```
#修改slaves文件,保存退出
slave1
slave2
```
2. 修改masters文件
#修改masters文件
master:8081 #注意我这里的8082的原因是因为与spark端口冲突,默认为8081
3. 修改flink-conf.yaml文件
这里需要注意不要删除前面的空格
#修改flink-conf.yaml文件
taskmanager.numberOfTaskSlots:2
jobmanager.rpc.address: master
4、拷贝到各节点
我这里有俩个节点分别为
slave1
slave2
scp -r /opt/flink-1.10.2 slave1:/opt/
scp -r /opt/flink-1.10.2 slave1:/opt/
5、配置环境变量
- 修改profile文件
#进入profile文件
vi /etc/profile
#添加以下路径,根据自己的路径添加
export FLINK_HOME=/opt/flink-1.10.2
export PATH=$PATH:$FLINK_HOME/bin
- 发送给其他节点
scp /etc/profile slave1:/etc/
scp /etc/profile slave2:/etc/
- 刷新文件
每个节点都需要刷新文件
source /etc/profile
6、启动flink
#进入flink-1.10.2目录下控制台输入
[root@localhost flink-1.10.2]# bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host localhost.localdomain.
Starting taskexecutor daemon on host slave1.
Starting taskexecutor daemon on host slave2.
jps查看进程
master节点:
slave1节点:
slave2节点:
## 7、webUI查看
我这里默认的8082端口,因为8081端口被spark占用
http://master:8081
7、启动HA
- 修改配置文件
修改flink-conf.yaml,HA模式下,jobmanager不需要指定,在master file中配置,由zookeeper选出leader与standby。
vi flink-conf.yaml
在flink-conf.yaml修改并添加以下代码
#jobmanager.rpc.address: node21
high-availability:zookeeper #指定高可用模式(必须)
high-availability.zookeeper.quorum:node21:2181,node22:2181,node23:2181 #ZooKeeper仲裁是ZooKeeper服务器的复制组,它提供分布式协调服务(必须)
high-availability.storageDir:hdfs:///flink/ha/ #JobManager元数据保存在文件系统storageDir中,只有指向此状态的指针存储在ZooKeeper中(必须)
high-availability.zookeeper.path.root:/flink #根ZooKeeper节点,在该节点下放置所有集群节点(推荐)
high-availability.cluster-id:/flinkCluster #自定义集群(推荐)
state.backend: filesystem
state.checkpoints.dir: hdfs:///flink/checkpoints
state.savepoints.dir: hdfs:///flink/checkpoints
- 修改conf/zoo.cfg
#修改zoo.cfg文件
[root@localhost conf]# vi zoo.cfg
#添加以下内容
server.1=master:2888:3888
server.1=slave1:2888:3888
server.1=slave2:2888:3888
- 修改conf/masters
#进入masters
[root@localhost conf]# vi masters
#添加以下内容
master:8081
slave1:8081
- 分发给其他节点
利用scp 将文件夹传送给其他节点
- 启动
#在根目录下启动
[root@localhost flink-1.10.2]# bin/start-cluster.sh