zoukankan      html  css  js  c++  java
  • linux运维、架构之路-Flink集群部署

    一、介绍

             Flink 是一个开源的分布式流式处理框架,Flink标准的实时处理引擎。用于在无边界和有边界数据流上进行有状态的计算。

    • 提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下。
    • 它是状态化的容错的,同时在维护一次完整的的应用状态时,能无缝修复错误。
    • 大规模运行,在上千个节点运行时有很好的吞吐量和低延迟。

    二、特性

    • Flink灵活的窗口。
    • Exactly once语义保证。

    三、Flink集群部署

    1、前置条件

    • 配置从master到worker节点的SSH无密登录,并保持保节点上相同的目录结构。
    • Flink要求在主节点和所有工作节点上设置JAVA_HOME环境变量,并指向Java安装的目录。

    ①配置SSH免秘钥

    ssh-keygen -t rsa
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.175 #Master
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.176 #worker1
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.182 #worker2

    ②配置JAVA环境变量(所有节点)

    vi ~/.bash_profile
    export JAVA_HOME=/app/jdk1.8.0_181
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH
    source ~/.bash_profile

    2、下载Flink安装包

    官方地址:https://flink.apache.org/downloads.html

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.12.2/flink-1.12.2-bin-scala_2.11.tgz

    ①解压软件

    tar xf flink-1.12.2-bin-scala_2.11.tgz -C /app/
    #修改配置文件:
    [root@k8s-node1 conf]# egrep -v "#|^$" flink-conf.yaml 
    env.java.home: /app/jdk1.8.0_181       # 配置java环境
    jobmanager.rpc.address: 192.168.56.175 # 配置主节点主机名,指向master节点
    jobmanager.rpc.port: 6125 
    jobmanager.memory.process.size: 1600m  #定义允许JVM在每个节点上分配的最大主内存量
    taskmanager.memory.process.size: 1728m
    taskmanager.numberOfTaskSlots: 4       #你希望每台机器能并行运行多少个slot, 机器上一个核可以运行一个slot
    parallelism.default: 4                 #整个集群最大的可并行度,slave的节点数*节点cpu核数
    jobmanager.execution.failover-strategy: region 
    rest.port: 8081                        #UI页面访问端口

    修改文件/conf/masters、worekers文件

    [root@k8s-node1 conf]# cat masters 
    192.168.56.175:6125
    [root@k8s-node1 conf]# cat workers 
    192.168.56.176
    192.168.56.182

    ②分发修改后的文件

    scp -rp flink-1.12.2 192.168.56.176:/app/
    scp -rp flink-1.12.2 192.168.56.182:/app/

    3、启动集群(只需要在主节点启动即可)

    [root@k8s-node1 app]# /app/flink-1.12.2/bin/start-cluster.sh 
    Starting cluster.
    Starting standalonesession daemon on host k8s-node1.
    Starting taskexecutor daemon on host k8s-node2.
    Starting taskexecutor daemon on host k8s-node3.
    [root@k8s-node1 app]# jps
    25673 Jps
    25453 StandaloneSessionClusterEntrypoint

    节点查看:

    [root@k8s-node2 ~]# jps
    10458 TaskManagerRunner
    11020 Jps

    4、页面访问

     ①创建一个Flink自带的流处理程序

    ./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname 192.168.56.175 --port 9000

    成功最有效的方法就是向有经验的人学习!
  • 相关阅读:
    3. Image Structure and Generation
    STM32F103
    10.2 External interrupt/event controller (EXTI)
    10.1 Nested vectored interrupt controller (NVIC) 嵌套矢量中断控制器
    ibatis 使用 in 查询的几种XML写法
    文字纵向打印
    oracle每天清理归档日志
    使用语句查询mssql死锁
    Xml序列化UTF-8格式错误
    Nginx的优点
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/14593095.html
Copyright © 2011-2022 走看看