zoukankan      html  css  js  c++  java
  • Flink1.7.2安装部署的几种方式

    原文链接:https://blog.csdn.net/a_drjiaoda/article/details/88037282

    前言:Flink的运行一般分为三种模式,即local、Standalone、On Yarn。

    在安装Flink之前,需要对安装环境进行检查。本文是建立在Hadoop、Zookeeper等常规大数据软件都已经安装成功的前体下,由于在时间环境中,常常需要Hadoop的组件配合Flink,因此我们在官网下载安装包时,需要找到对应Hadoop版本的Flink安装包以及系统中Scala的版本,我使用的版本是Hadoop2.8.5+scala2.11.12。scala安装不多做赘述,只需修改一下环境变量即可,比安装QQ还简单。

    下载Flink安装包
    下载Flink二进制包:https://flink.apache.org/downloads.html, 选择flink-1.7.2-bin-hadoop28-scala_2.11.tgz。保存到windows下之后,使用winScp传输到linux系统下/usr目录,这个目录只是小厨将所有的系统软件都放在这里,为了清晰的访问各个系统的文件夹。

    解压安装:使用命令 tar -zvxf flink-1.7.2-bin-hadoop28-scala_2.11.tgz对文件进行解压,为了目录整洁,这里使用命令将解压完的文件重命名为flink: mv flink-1.7.2/ flink

    一:local模式
    Local模式比较简单,用于本地测试,因此不多做赘述。只需在主节点上解压安装包就代表成功安装了,在flink安装目录下使用./bin/start-cluster.sh命令,就可以通过master:8081监控集群状态,关闭集群命令:./bin/stop-cluster.sh。

    二:Standalone模式
    Standalone模式顾名思义,是在本地集群上调度执行,不依赖于外部调度机制例如YARN。此时需要对配置文件进行一些简单的修改,我们预计使用master节点当Job manage,master、slave1、slave2三台机器充当Task Managers。

    1、修改环境变量,vi /etc/profile,添加以下内容

    export FLINK_HOME=/usr/flink
    export PATH=$FLINK_HOME/bin:$PATH
    2、更改配置文件flink-conf.yaml,cd $FLINK_HOME/conf,  vi flink-conf.yaml

    主要更改的位置有:
    jobmanager.rpc.address: master
    taskmanager.numberOfTaskSlots: 2
    parallelism.default: 4
    上述我们只列出了一些常用需要修改的文件内容,下面我们再简单介绍一些

    # jobManager 的IP地址
    jobmanager.rpc.address: master

    # JobManager 的端口号
    jobmanager.rpc.port: 6123

    # JobManager JVM heap 内存大小
    jobmanager.heap.size: 1024m

    # TaskManager JVM heap 内存大小
    taskmanager.heap.size: 1024m

    # 每个 TaskManager 提供的任务 slots 数量大小,默认为1

    taskmanager.numberOfTaskSlots: 2

    # 程序默认并行计算的个数,默认为1
    parallelism.default: 4
    3、配置masters文件

    该文件用于指定主节点及其web访问端口,表示集群的Jobmanager,vi masters,添加master:8081

    4、配置slaves文件,该文件用于指定从节点,表示集群的taskManager。添加以下内容

    master
    slave1
    slave2
    5、分发flink服务,并在从节点环境变量文件/etc/profile中添加相关内容

    scp -r /usr/flink root@slave1:/usr
    scp -r /usr/flink root@slave2:/usr
    6、启动flink集群 (因为在环境变量中已经指定了flink的bin位置,因此可以直接输入start-cluster.sh)

    7、验证flink进程,登录web界面

       

    由上图可看出,在master节点上已经启动了flink的Jobmanager和Taskmanager进程,slave节点启动了Taskmanager进程,Flink集群的相关服务已正常启动,下面查看Web界面是否正常,登录配置的master的ip地址+端口号:192.168.83.129:8081,flink cluster情况如下:

    至此,standalone模式已成功安装。

    注:这里只是集群模式而已,在实际场景中,我们一般需要配置为HA,防止Jobmanager突然挂掉,导致整个集群或者任务执行失败的情况发生。下面介绍一下Standalone HA模式的搭建安装

    三、Standalone HA模式
    当Flink程序运行时,如果jobmanager崩溃,那么整个程序都会失败。为了防止jobmanager的单点故障,借助于zookeeper的协调机制,可以实现jobmanager的HA配置—-1主(leader)多从(standby)。这里的HA配置只涉及standalone模式,yarn模式暂不考虑。 

    本例中规划Jobmanager:master,slave1(一个active,一个standby);Taskmanager:slave1,slave2;zookeeper集群。

    1、更改flink-conf.yaml配置文件

    1.jobmanager端口
    jobmanager.web.port: 8081(需要防止端口冲突)
    1.jobmanager地址
    注释jobmanager.rpc.address:flink配置项
    HA模式下,jobmanager不需要指定,在master file中配置,由zookeeper选出leader与standby。

    2.checkpoints目录
    检查点生成的分布式快照的保存地点,默认是jobmanager的memory,但是HA模式必须配置在hdfs上,
    且保存路径需要在hdfs上创建并指定路径
    state.backend: filesystem
    state.backend.fs.checkpointdir: hdfs://192.168.83.129:9000/flink-metadata/checkpoints

    3.hadoopconf路径:
    指定hadoop conf路径,这里需要告诉Flink,hadoop配置的路径,否则会报错
    fs.hdfs.hadoopconf: $HADOOP_HOME/etc/hadoop

    4.zookeeper信息
    recovery.mode: zookeeper
    recovery.zookeeper.quorum: master:2181,slave1:2181,slave2:2181
    recovery.zookeeper.storageDir: hdfs://192.168.83.129:9000/flink-metadata/recovery
    recovery.zookeeper.path.root: /flink
    recovery.zookeeper.path.namespace: /flink

    配置项说明:
    storageDir存储jobmanager的元数据信息,包括用于恢复的信息;
    recovery.zookeeper.path.root代表zookeeper中节点信息;
    recovery.zookeeper.path.namespace,如果Flink集群有不止一个,那么这个值需要指定,不能用默认的名字
    2、配置masters文件

    master:8081
    slave1:8081
    注意: spark有个端口已经占用了8081,如果要和spark部署到同一个集群中,应当防止端口冲突

    3、分发配置文件,将刚刚修改的配置文件slaves和flink-conf.yaml分发至另外两个节点。

    4、重启flink集群:start-cluster.sh

    四、Flink on yarn
    Flink on yarn的模式适用于实际环境,最近也一直听到很多关于flink on yarn 的消息。由于比较重要,因此单独放一篇《Flink on Yarn模式部署始末》

  • 相关阅读:
    .Net学习难点讨论系列2 – 细说C#中new关键字与多态
    [翻译]搜索关键字 – 管道与过滤器模式(PipesandFilters)与装饰模式(Decorator)之间的关系
    .Net学习难点讨论系列1 – 委托与事件之事件
    [翻译]Popfly系列课程1 Popfly课程计划概览
    常用桌面虚拟化软件横向对比
    各种算法的C#实现系列1 合并排序的原理及代码分析
    博客园安家
    疑:Microsoft® Silverlight™ Tools for Visual Studio 2008 SP1的版本让人困惑
    stream_socket_client
    stream_socket_client2
  • 原文地址:https://www.cnblogs.com/leon0/p/11606699.html
Copyright © 2011-2022 走看看