Flink安装部署{单机模式、会话模式(集群部署)、yarn模式(包含hadoop3.1.3部署)}

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink安装部署{单机模式、会话模式(集群部署)、yarn模式(包含hadoop3.1.3部署)}

flink部署

前置准备

1.CentOS7.5

2.java8

3.配置三台机器时间同步和免密登陆,关闭防火墙

ip地址 主机名

192.168.10.128 master
192.168.10.129 slave1
192.168.10.130 Slave2

下载链接:https://flink.apache.org/zh/downloads.html#section-7

这里我选择的是1.13.0:https://archive.apache.org/dist/flink/flink-1.13.0/

组件:

Flink中有几个关键性组件:客户端、调度中心(JobManager)、任务管理器(TaskManager)


我们通过客户端解析任务、然后提交到调度中心,调度中心分配任务到不同的工作节点运行。

单机模式

上传flink-1.13.0-bin-scala_2.12.tgz到/opt/software

解压(没有目录的话自行创建)

tar -zxvf flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/
cd /opt/module/
mv flink-1.13.0 flink

启动

cd /opt/module/flink/bin
./start-cluster.sh

通过jps查看进程,包含StandaloneSessionClusterEntrypoint和TaskManagerRunner代表成功

10369 StandaloneSessionClusterEntrypoint
10680 TaskManagerRunner

flink提供了一个web页面,访问master:8081即可看到(要hosts文件配置了master对应的ip地址)

关闭集群

cd /opt/module/flink/bin
./stop-cluster.sh

会话模式(集群部署)

上传flink-1.13.0-bin-scala_2.12.tgz到/opt/software

master上解压(没有目录的话自行创建)

tar -zxvf flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/
cd /opt/module/
mv flink-1.13.0 flink

修改配置,设置jobmanager

cd /opt/module/flink/conf
vim flink-conf.yaml

设置TaskManager 节点

vim workers

修改为

slave1
slave2

分发到slave1、slave2

scp -r /opt/module/flink/ root@slave1:/opt/module
scp -r /opt/module/flink/ root@slave2:/opt/module

只要在master启动

cd /opt/module/flink/bin
./start-cluster.sh

flink提供了一个web页面,访问master:8081即可看到(要hosts文件配置了master对应的ip地址)

yarn模式(推荐)

首先要确保有hadoop集群

master slave1 slave2
HDFS NameNode DataNode DataNode SecondaryNameNode DataNode
YARN NodeManager ResourceManager NodeManager NodeManager

下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/


选择hadoop-3.1.3.tar.gz下载


上传至master节点


首先进行解压,然后分发到slave1和slave2,分别登陆到slave1,和slave2完成解压

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
scp hadoop-3.1.3.tar.gz root@slave1:/opt/software
scp hadoop-3.1.3.tar.gz root@slave2:/opt/software

配置环境变量

vim /root/.bash_profile
HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`

重开shell窗口,查看hadoop版本

hadoop version

核心配置文件

cd /opt/module/hadoop-3.1.3/etc/hadoop/
vim core-site.xml
<!-- namenode地址端口-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>
<!-- 数据存储目录-->
<property>
    <name>hadoop.data.dir</name>
    <value>/opt/module/hadoop-3.1.3/data</value>
</property>
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

HDFS配置文件

vim hdfs-site.xml
<!-- nn web端访问地址-->
<property>
  <name>dfs.namenode.http-address</name>
  <value>master:9870</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file://${hadoop.data.dir}/name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file://${hadoop.data.dir}/data</value>
</property>
<!--主节点的元数据备份地址-->
<property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>file://${hadoop.data.dir}/namesecondary</value>
</property>
  <property>
  <name>dfs.client.datanode-restart.timeout</name>
  <value>30</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>slave2:9868</value>
</property>

YARN配置文件

vim yarn-site.xml
<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
  <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</value>
    </property>
  <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
  <!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>
    <!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
    <!-- 关闭yarn对虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

修改mapred-site.xml

vim mapred-site.xml
  <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

配置hadoop. jdk环境,不知道jdk在哪的可以echo $JAVA_HOME查看

vim /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_212

配置workers(不要有多余的空格)

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
master
slave1
slave2

在启动之前需要修改一下启动文件,修改start-dfs.sh和stop-dfs.sh,在文件最开始加入下面四行

vim /opt/module/hadoop-3.1.3/sbin/start-dfs.sh
vim /opt/module/hadoop-3.1.3/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root 

修改start-dfs.sh和stop-dfs.sh,在文件最开始加入下面四行

vim /opt/module/hadoop-3.1.3/sbin/start-yarn.sh
vim /opt/module/hadoop-3.1.3/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

同步sbin目录(启动命令),和etc/hadoop/目录下(配置文件),如果复制有问题自己手打

cd /opt/module/hadoop-3.1.3/etc/
scp -r hadoop/ root@slave1:/opt/module/hadoop-3.1.3/etc/ 
scp -r hadoop/ root@slave2:/opt/module/hadoop-3.1.3/etc/ 
cd /opt/module/hadoop-3.1.3 
scp -r sbin/ root@slave1:/opt/module/hadoop-3.1.3/ 
scp -r sbin/ root@slave2:/opt/module/hadoop-3.1.3/ 

如果集群是第一次启动,需要在master节点格式化NameNode

cd /opt/module/hadoop-3.1.3/
bin/hdfs namenode -format


在master上执行

cd /opt/module/hadoop-3.1.3/
sbin/start-dfs.sh

在slave1上执行

cd /opt/module/hadoop-3.1.3/
sbin/start-yarn.sh

部署flink

解压flink,修改文件夹为flink-1.13.0-yarn

tar -zxvf flink-1.13.0-bin-scala_2.12.tgz -C /opt/module/
cd /opt/module
mv flink-1.13.0 flink-1.13.0-yarn

修改配置

vim flink-conf.yaml
jobmanager.memory.process.size: 1600m
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 8
parallelism.default: 1

启动,首先要保证hadoop集群启动成功

cd /opt/module/flink-1.13.0-yarn
bin/yarn-session.sh -nm test

可以访问地址,看到客户端

最后说一句,尚硅谷yyds

https://www.bilibili.com/video/BV133411s7Sa?p=24&spm_id_from=pageDriver

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4月前
|
存储 资源调度 Apache
Flink on yarn 的taskslot为0问题
Flink on yarn 的taskslot为0问题
|
2月前
|
存储 资源调度 关系型数据库
Flink CDC产品常见问题之yarn-session提交失败如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
3月前
|
消息中间件 资源调度 Java
flink问题之1.10升级到1.11 提交到yarn失败如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
39 0
|
3月前
|
分布式计算 资源调度 Hadoop
Flink报错问题之yarn报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
3月前
|
资源调度 Kubernetes Java
Flink--day02、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)
Flink--day022、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)
139 5
|
4月前
|
资源调度 监控 API
在Flink中,通过YARN模式进行峰谷动态并行度扩容缩容可以使用 Flink 自带的动态调优功能
在Flink中,通过YARN模式进行峰谷动态并行度扩容缩容可以使用 Flink 自带的动态调优功能【1月更文挑战第6天】【1月更文挑战第26篇】
149 1
|
8月前
|
分布式计算 资源调度 监控
Hadoop学习笔记(四)之YARN
Hadoop学习笔记(四)之YARN
|
16天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
44 9
|
17天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
23 4
|
22天前
|
资源调度 分布式计算 算法
【Hadoop Yarn】Hadoop Yarn 基于优先级的调度算法
【4月更文挑战第7天】【Hadoop Yarn】Hadoop Yarn 基于优先级的调度算法