Flink run 参数解释

1 Flink的前世今生(生态很重要)

很多人可能都是在 2015 年才听到 Flink 这个词,其实早在 2008 年,Flink 的前身已经是柏林理工大学一个研究性项目, 在 2014 被 Apache 孵化器所接受,然后迅速地成为了 ASF(Apache Software Foundation)的顶级项目之一。

    Apache Flink is an open source platform for distributed stream and batch data
    processing. Flink’s core is a streaming dataflow engine that provides data
    distribution, communication, and fault tolerance for distributed computations
    over data streams. Flink builds batch processing on top of the streaming engine,
    overlaying native iteration support, managed memory, and program optimization.
复制代码

 

 

 

  • Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架。
  • 主要由 Java 代码实现,提供Java 和scala接口。
  • 支持实时流(stream)处理和批(batch)处理,批数据只是流数据的一个极限特例。
  • Flink原生支持了迭代计算、内存管理和程序优化。
  • Flink目前也在重力打造属于自己的大数据生态。(FinkSQL , Flink ML ,Flink Gelly等)

 

 

 

2 吞吐量悖论

流处理和批处理的纠结选择和不容水火,Flink通过灵活的执行引擎,能够同时支持批处理任务与流处理任务,但是悖论是永远存在的。

  • 流处理:Flink以固定的缓存块为单位进行网络数据传输,用户可以通过设置缓存块超时值指定缓存块的传输时机。如果缓存块的超时值为0,则Flink的数据传输方式类似上文所提到流处理系统的标准模型,此时系统可以获得最低的处理延迟。
  • 批处理:如果缓存块的超时值为无限大,则Flink的数据传输方式类似上文所提到批处理系统的标准模型,此时系统可以获得最高的吞吐量。
  • 灵活的秘密:缓存块的超时值也可以设置为0到无限大之间的任意值。缓存块的超时阈值越小,则Flink流处理执行引擎的数据处理延迟越低,但吞吐量也会降低,反之亦然。通过调整缓存块的超时阈值,用户可根据需求灵活地权衡系统延迟和吞吐量。

3 容错的抉择(Flink or Spark)

  • SparkStreaming :微批次模型,EOS语义,基于RDD Checkpoint进行容错,基于checkpoint状态管理。状态的状态操作基于DStream模板进行管理,延时中等水平,吞吐量很高。详情请参考我的SparkStreaming源码解读。

  • Flink :流处理模型,EOS语义,基于两种状态管理进行容错,即:State和checkpoint两种机制。状态操作可以细粒化到算子等操作上。延时不仅低,而且吞吐量也非常高。

      - State  基于task和operator两种状态。State类型进一步细分为
        Keyed State和 Operator State 两种类型
      - checkpoint  基全局快照来实现数据容错,注意:State的状态保存在java的堆里面,
        checkpoint则通过定时实现全局(所有State)状态的持久化。
    复制代码

说实在的,Flink很狂妄:

 

 

4 Stanalone 环境全方位剖析

4.1 Stanalone 模式

集群节点规划(一主两从)

1 基础环境:

jdk1.8及以上【需要配置JAVA_HOME】
ssh免密码登录(至少要实现主节点能够免密登录到从节点)
主机名hostname
/etc/hosts文件配置主机名和ip的映射关系
     	192.168.1.160   SparkMaster
        192.168.1.161   SparkWorker1
        192.168.1.162   SparkWorker2
关闭防火墙
复制代码

2 在SparkMaster节点上主要需要修改的配置信息

cd /usr/local/flink-1.6.1/conf
vi flink-conf.yaml
jobmanager.rpc.address: SparkMaster
复制代码

3 slaves修改

vi slaves
SparkWorker1
SparkWorker2
复制代码

4 然后再把修改好的flink目录拷贝到其他两个节点即可

scp -rq flink-1.6.1 SparkWorker1:/usr/local/
scp -rq flink-1.6.1 SparkWorker2:/usr/local/
复制代码

4.2 Stanalone 运行展示

这里发生一个小插曲,因为yarn配置文件不一致,导致 hadoop Web UI 无法正常显示所有NodeManager。所以注意配置文件的一致性。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值