flink和spark使用Scala编程的代码的对比

Flink():
实时性高,吞吐量高,离线+实时
算子较为丰富

Spark Streaming():
有延迟(毫秒级别),吞吐量高,离线+实时
算子丰富,可以做机器学习,图计算(生态圈)

flink的批处理实际上流处理,只是把一个批处理当作是一个大的流,而spark的实时实际上时批处理,是极小的批次,比如说把1秒的一个批次进行一次处理,可以看作是流处理,但是会有延迟
Spark做实时计算,原来是一次性提交一个大的RDD,想要做实时计算,需要把不断的读取数据,形成多个小的RDD,每隔一段时间就会产生一个小的RDD,然后将小的RDD提交到集群

下面是在使用Scala对flink和spark进行编程时的一个对比

flink实时的wordcount:


import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.api.windowing.time.Time


/**
  * @Author: zxl
  * @Date: 2019/1/12 10:16
  * @Version 1.0
  * 通过实时收集 某个端口的数据, 然后进行wordcount
  */
object FlinkDemo01 {
   

  def main(args: Array[String]): Unit = {
   
  // flink 的一个工具类,可以获取参数
    val tool = ParameterTool.fromArgs(args)
// 获取hostname,如果没有就取默认值
    val hostname = tool.get("hostname","192.168.136.150")
    val port = tool.getInt("port",9999)
    // env 相当于spark中的StreamContext上下文
    val env = StreamExecutionEnvironment
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值