美文网首页
Flink学习笔记(2):Standalone集群部署

Flink学习笔记(2):Standalone集群部署

作者: 郭寻抚 | 来源:发表于2016-09-24 21:32 被阅读3688次

    1. 部署说明

    Flink 有三种部署模式,分别是 Local、Standalone Cluster 和 Yarn Cluster。对于 Local 模式来说,JobManager 和 TaskManager 共用一个 JVM,Local模式的部署请点击http://www.jianshu.com/p/26c9ef86fb19。如果要验证一个简单的应用,Local 模式是最方便的。实际应用中大多使用 Standalone 或者 Yarn Cluster。

    Flink是Master/Slave架构,充当Master角色的是JobManager,充当Slave角色是SlaveTaskManager。和所有Master/Slave架构的集群一样,JobManager也存在单点故障的问题;Flink也提供了Master HA的方案,是由Zookeeper支撑的;本次部署暂不考虑HA的情况,仅仅达到了集群运行起来的目标。

    2. 部署要求

    • 机器三台,IP是192.168.1.90—92,主机名分别是vm1、vm2、vm3。

    • Linux操作系统,本次使用Centos 7.1。

    • JDK1.7或者更高版本,本次使用JDK 1.8,并配置环境变量。

        [root@vm1 ~]# vi /etc/profile
        #在文件的末尾配置JAVA_HOME和Path
        export JAVA_HOME=/opt/jdk
        export PATH=$PATH:$JAVA_HOME/bin
      
        [root@vm1 ~]# source /etc/profile
      
    • 设置ssh免登录

      • 生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用“”空字符串表示无密码。直接回车。

          [root@vm1 ~]# ssh-keygen -t rsa -P ""
        
      • 将生成的密钥写入authorized_keys文件。

          [root@vm1 ~]# cat .ssh/id_rsa.pub >>.ssh/authorized_keys
        
      • 将.ssh目录拷贝到其它主机相同目录下。

          [root@vm1 ~]# scp -r ~/.ssh root@192.168.1.91:~/
          [root@vm1 ~]# scp -r ~/.ssh root@192.168.1.92:~/
        

    3. 部署过程

    3.1 部署Flink

    把Flink的压缩包解压到/opt目录下,即Flink的Home路径是/opt/flink-1.1.2,保持各台机器上flink目录一致。

    3.2 Flink参数设置

    Flink的配置文件路径是/opt/flink-1.1.2/conf,目录下的文件包括

    • flink-conf.yaml #flink的主配置文件
    • log4j-cli.properties
    • log4j.properties
    • log4j-yarn-session.properties
    • logback.xml
    • logback-yarn.xml
    • masters # master(jobmanager)配置文件
    • slaves # slave(taskmanager)配置文件
    • zoo.cfg # Zookeeper配置文件

    本次部署,修改了vm1上的flink-conf.yaml、mastes和slaves,并在修改完成后拷贝到了vm2和vm3上。

    3.2.1 flink-conf.yaml的修改

    文件路径是/opt/flink-1.1.2/conf/flink-conf.yaml,主要关注以下参数,具体的含义见注释。还有更多的参数配置,例如前端页面的配置、文件存储的配置(支持HDFS)、HA的配置等,更多配置说明参考:Flink官方配置说明

    # Master的主机名或者ip
    jobmanager.rpc.address: vm1
    
    # JobManager监听端口
    jobmanager.rpc.port: 6123
    
    # JobManager的内存参数
    jobmanager.heap.mb: 512
    
    # 每台taskmanager可用的总内存
    taskmanager.heap.mb: 8192
    
    # 每台taskmanager可用的solt数目,一般设置成CPU的core数
    taskmanager.numberOfTaskSlots: 2
    
    # NumTaskManagers(slave的个数) * NumSlotsPerTaskManager
    parallelism.default: 4
    
    # 酌情修改临时目录。/tmp中的数据重启就没了。
    taskmanager.tmp.dirs: /tmp
    

    3.2.1 masters的修改

    在配置jobmanager(master)文件时,除了配置master的主机名(IP)之外,还需要指定 JobManager 的 UI 监听端口。

    vm1:8081
    

    3.2.1 slaves的修改

    修改slaves文件,配置多个taskmanager(slave)。

    vm2
    vm3
    

    3.3 集群启动和停止

    3.3.1 启动集群

    在master节点,即本例中的vm1节点上执行以下命令,启动集群。其过程就是先启动本机的jobmanager,然后ssh到各个slave节点上启动taskmanager。

    [root@vm1 flink-1.1.2]# bin/start-cluster.sh
    

    访问http://vm1:8081,可以看到有2个taskmanager,和4个slot。

    Paste_Image.png

    3.3.2 停止集群

    在master节点,即本例中的vm1节点上执行以下命令,启动集群。其过程是先ssh到各个slave节点上停止taskmanager,再停止本机的jobmanager。

    [root@vm1 flink-1.1.2]# bin/stop-cluster.sh
    

    3.3.3 启停集群中的一个节点

    如果想要启动或者停止机器中的节点,不论是jobmanager或者taskmanager,都可以在对应的主机上执行以下命令。

    # 启动本机的jobmanager
    bin/jobmanager.sh start
    # 启动本机的taskmanager
    bin/taskmanager.sh start
    
    # 停止本机的taskmanager
    bin/taskmanager.sh stop
    # jobmanager
    bin/jobmanager.sh stop
    

    https://ci.apache.org/projects/flink/flink-docs-release-1.1/quickstart/setup_quickstart.html#cluster-setup
    https://ci.apache.org/projects/flink/flink-docs-release-1.1/setup/cluster_setup.html

    (完)

    相关文章

      网友评论

          本文标题:Flink学习笔记(2):Standalone集群部署

          本文链接:https://www.haomeiwen.com/subject/tznxyttx.html