当前位置:   article > 正文

大数据面试之Spark Streaming常见题目_与spark stream有关的习题

与spark stream有关的习题

大数据面试之Spark Streaming常见题目

1 Spark Streaming是纯流式处理框架吗?抽象是谁?

​ 不是纯流式,其实是批处理,更准确的说是微批处理。抽象类是DStream。

2 Spark Streaming背压机制

​ 其实就是一种动态消费机制,可以避免来的数据过多,造成数据积压。也可以防止来的数据较少造成资源空闲浪费。

​ 把spark.streaming.backpressure.enabled 参数设置为ture,开启背压机制后Spark Streaming会根据延迟动态去kafka消费数据,上限由spark.streaming.kafka.maxRatePerPartition参数控制,所以两个参数一般会一起使用。

3 SparkStreaming有哪几种方式消费Kafka中的数据,它们之间的区别是什么?

一、基于Receiver的方式

​ 这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实现的。Receiver从Kafka中获取的数据都是存储在Spark的 Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。因为存在内存中,如果突然数据暴增,大量batch批堆积,很容易出现内存溢出的问题。

​ 然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制,让数据零丢失,就必须启用Spark Streaming的WAL预写日志机制(Write Ahead Log)。该机制会同步地将接收到的Kafka数据写入分布式文件系统(比如HDFS)上的预写日志中。这个时候即使底层节点出现了失败,也可以使用预写日志中的数据进行恢复。

二、基于Direct的方式

​ 这种方式是在Spark 1.3中引入的,从而能够确保更加健壮的机制。这种方式会周期性地查询Kafka,来获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的简单Consumer API来获取Kafka指定offset范围的数据。

具有如下的优点:

1、简化并行读取:如果要读取多个partition,不需要创建多个输入DStream然后对它们进行union操作。Spark会创建跟Kafka partition一样多的RDD partition,并且会并行从Kafka中读取数据。所以在Kafka partition和RDD partition之间,有一个一对一的映射关系。 

2、高性能:如果要保证零数据丢失,在基于receiver的方式中,需要开启WAL机制。这种方式其实效率低下,因为数据实际上被复制了两份,Kafka自己本身就有高可靠的机制,会对数据复制一份,而这里又会复制一份到WAL中。而基于direct的方式,不依赖Receiver,不需要开启WAL机制,只要Kafka中作了数据的复制,那么就可以通过Kafka的副本进行恢复。 

3、一次且仅一次的事务机制。
  • 1
  • 2
  • 3
  • 4
  • 5

三、对比:

​ 基于Receiver的方式,是使用Kafka的高阶API来完成在ZooKeeper中保存消费过的offset的,这是消费Kafka数据的传统方式。这种方式配合着WAL机制可以保证数据零丢失的高可靠性,但是却无法保证数据被处理一次且仅一次,可能会处理两次。因为Spark和ZooKeeper之间可能是不同步的。

​ 基于Direct的方式,使用Kafka的简单API,Spark Streaming自己就负责追踪消费的offset,并保存在checkpoint当中。Spark自己是同步的,所以可以保证数据是消费一次且仅消费一次。

​ 在实际生产环境中大都用Direct方式。



声明:
        文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/752667
推荐阅读
相关标签
  

闽ICP备14008679号