当前位置:   article > 正文

Spark大数据分与实践笔记(第七章 Spark Streaming实时计算框架-03)_启用wal日志将接收到数据同步地保存到分布式文件系统上(如hdfs),用于将丢失的

启用wal日志将接收到数据同步地保存到分布式文件系统上(如hdfs),用于将丢失的

第七章 Spark Streaming实时计算框架

7.4 Spark Streaming整合Kafka实战

Kafka作为一个实时的分布式消息队列,实时地生产和消费消息。在这里,我们可以利用Spark Streaming实时地读取Kafka中的数据,然后再进行相关计算。在Spark.[.3版本后, KafkaUtils里面提供 了两个创建DStream的方式,一种是KafkaUtils.createDstream方式,另-种为KafkaUtils.createDirectStream方式。 本节,我们针对DStream的这两种方式进行详细介绍。

7.4.1 KafkaUtils.createDstream方式

KafkaUtils.createDstream方式(即基于Receiver的方式),主要是通过Zookeeper连接Kafka, receivers接收器从Kafka中获取数据,并且所有receivers获取到的数据都会保存在Spark executors中,然后通过Spark Streaming启动job来处理这些数据,具体处理流程如图所示。
在这里插入图片描述

在图中,当Driver处理Spark Executors中的job时,默认是会出现数据丢失的情况,此时,如果我们启用WAL日志将接收到数据同步地保存到分布式文件系统上(如HDFS) ,当数据由于某种原因丢失时,丢失的数据能够及时恢复。
接下来,通过一个具体的案例来演示如何使用KafkaUtils.createDstream实现词频统计,具体实现步骤如下:

7.4.1.1 导入依赖

我们需要在pom.xm文件中添加Spark Streaming整合Kafka的依赖。具体内容如下:

<!--引入sparkstreaming整合kafka的依赖-->
<dependency>
	<groupId>org.apache.spark</groupId>
	<artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
	<version>2.0.2</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
7.4.1.2 创建Scala类, 实现词频统计

在spark_ chapter07项目的/src/main/scala/cn.itcast.dstream目录下, 创建一个名
为"SparkStreaming Kafka_ _createDstream”的Scala类,用来编写Spark Streaming应用程序实现词频统计。具体实现代码如文件所示。
文件7-7 SparkStreaming_Kafka_createDstream.scala

package cn.itcast.dstream

import org.apache.spark.streaming.dstream.{
   DStream, ReceiverInputDStream}
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{
   Seconds, StreamingContext}
import org.apache.spark.{
   SparkConf, SparkContext}
import scala.collection.immutable

object SparkStreaming_Kafka_createDstream {
   
    def main(args: Array[String]): Unit = {
   
        //1.创建sparkConf,并开启wal预写日志,保存数据源
        val sparkConf: SparkConf =
                 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/830130
推荐阅读
相关标签
  

闽ICP备14008679号