• 二、Flink环境搭建


    1、standalone模式搭建

    standalone模式是Flink自带的分布式集群模式,不依赖其他的资源调度框架;

    这里使用三台主机搭建,86可以免密登录到88、89:

    172.17.28.86   cs-28-86
    172.17.28.88   cs-28-88
    172.17.28.89   cs-28-89


    image


    • 上传flink安装包到Linux服务器上
    • 解压flink安装包
    [root@cs-28-86 ~]# cd /data/wym
    [root@cs-28-86 ~]# tar zxf flink-1.12.0-bin-scala_2.12.tgz


    • 修改conf目录下的flink-conf.yaml配置文件
    #指定jobmanager的地址
    jobmanager.rpc.address: cs-28-86
    
    #指定taskmanager的可用槽位的数量,一般配为逻辑cpu核数或核数的2倍
    taskmanager.numberOfTaskSlots: 2


    • 修改conf目录下的workers配置文件,指定taskmanager的所在节点,这里86没有使用:
    [root@cs-28-86 flink-1.12.0]# cat conf/workers
    cs-28-88
    cs-28-89


    • 将配置好的Flink拷贝到其他节点的相同目录下
    scp -r flink-1.12.0 cs-28-88:/data/wym/
    scp -r flink-1.12.0 cs-28-89:/data/wym/


    2、 启动flink集群和检测

    • 执行启动脚本
    [root@cs-28-86 flink-1.12.0]# ./bin/start-cluster.sh
    • 执行jps命令查看Java进程
    [root@cs-28-86 flink-1.12.0]# jps |grep StandaloneSessionClusterEntrypoint
    15908 StandaloneSessionClusterEntrypoint
    
    [root@cs-28-88 ~]# jps |grep TaskManagerRunner
    32151 TaskManagerRunner
    
    [root@cs-28-89 ~]# jps |grep TaskManagerRunner
    14770 TaskManagerRunner


    在172.17.28.86上可用看见StandaloneSessionClusterEntrypoint进程即JobManager,在其他的节点上可用看见到TaskManagerRunner 即TaskManager


    • 访问JobManager的web管理界面,端口8081

    172.17.28.86:8081

    image


    3、 提交Flink任务

    第①步:获取案例jar包,启动nc

    获取案例jar包到本地:

    image


    在指定的节点上先启动一个socket端口服务,这里可以使用nc,如果没有可以使用 yum install -y nc 安装,我这里是在172.17.28.86节点上启动的;

    nc -lk 8888

    image


    • 第一种方式:通过web页面提交


    第②步:方法jobManager所在节点的8081端口,点击Submint New Job

    image


    第③步:点击Add New 上传Jar包,这个示例jar包在官方给的example目录下

    image


    第④步:设置参数并点击Submit提交

    image

    image


    此时在nc窗口中输入一些内容:

    image


    然后去页面中看计算结果:

    image


    测试完成,此时去停掉任务:

    在Running Jobs中点击具体的任务,然后点Cancel Job(选OK)

    image


    此时资源已释放:

    image


    • 第二种方式:使用命令行提交
    bin/flink run -m cs-28-86:8081 -p 4 -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount jar包 --hostname cs-28-86 --port 8888


    参数说明:

    -m 指定主机名后面的端口为JobManager的REST的端口,而不是RPC的端口,RPC通信端口是6123

    -p  指定是并行度(Slots)

    -c  指定main方法的全类名


    在88上提交,提交完以后这个窗口可以关掉,因为任务已经提交到集群运行了:

    image

    出现了一个CliFrontend进程:

    image

    image


    第⑤步:查看执行信息

    image


    第⑥步:在启动nc服务的节点上输入一下测试数据

    image

    第⑦步:查看执行结果

    image

    在点击Stdout查看打印的结果

    image

  • 相关阅读:
    Android-内存泄漏
    性能adb命令
    设置Nginx开机自启动
    【转 记录】python中的encode以及decode
    SVN 提交回滚
    Linux基础
    CentOS6.X关闭防火墙
    SCP用法
    Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置(转)
    (转,记录用)jQuery页面加载初始化的3种方法
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/15831203.html
Copyright © 2020-2023  润新知