spark-streaming连接kafka(receiver)

SparkStreaming连接kafka的两种方式      Spark对于Kafka的连接主要有两种方式,一种是DirectKafkaInputDStream,另外一种是KafkaInputDStream。   【Receiver-based】     这种方法使用一个 Receiver 来接收数据。在该 Receiver 的实现中使用了... 阅读详情
package com.asiainfo.spark.streaming

import org.apache.spark.{HashPartitioner, SparkConf}
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{Seconds, StreamingContext}

object UrlCount {

  val updateFunc = (iterator: Iterator[(String, Seq[Int], Option[Int])]) => {
    iterator.flatMap{case(x,y,z)=> Some(y.sum + z.getOrElse(0)).map(n=>(x, n))}
  }

  def main(args: Array[String]) {
    //接收命令行中的参数

    val zkQuorum="192.168.111.3,192.168.111.5,192.168.111.6"
    val groupId="spark-streaming"
    val topics="test"
    val numThreads="1"
    val hdfs="hdfs://192.168.111.3:9000/kafka"

    //val Array(zkQuorum, groupId, topics, numThreads, hdfs) = args
    //创建SparkConf并设置AppName
    val conf = new SparkConf().setAppName("UrlCount").setMaster("local")
    //创建StreamingContext
    val ssc = new StreamingContext(conf, Seconds(30))
    //设置检查点
    ssc.checkpoint(hdfs)
    //设置topic信息
    val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
    //重Kafka中拉取数据创建DStream
    val lines = KafkaUtils.createStream(ssc, zkQuorum ,groupId, topicMap, StorageLevel.MEMORY_AND_DISK).map(_._2)
    //切分数据,截取用户点击的url
    val urls = lines.map(x=>(x.split(" ")(1), 1))
    //统计URL点击量
    val result = urls.updateStateByKey(updateFunc, new HashPartitioner(ssc.sparkContext.defaultParallelism), true)
    //将结果打印到控制台
    result.print()
    ssc.start()
    ssc.awaitTermination()
  }
}
Spark Streaming详细文本教学01 文章目录前言TERMINAL 1:Running Netcat未完の 前言 你们好我是啊晨 今儿更新spark 技术Spark Streaming。 废话不多说,内容很多选择阅读,详细。 请: 一、Spark Streaming概述 1、什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Strea... 阅读详情

相关推荐

跟着团子学SAP CO:基于成本的完工百分比结算:Cost-based POC(以项目为例)

本文以英国及北美会计准则下的基于成本的POC的销售型项目结算对PS模块中的完工百分比进行介绍

Lucas1211的博客 2万+

Spark Streaming对接Kafka

上述两种方式中,Direct Approach方式更加可靠,不需要Spark Streaming自己去保证维护数据的可靠性,而是由善于处理这类工作的Kafka来做。在前面的案例中,我们监听了来自网络端口的数据,实现了WordCount,但是在实际开发中并不是这样。需求:利用Spark Streaming不断处理来自Kafka生产者生产的数据,并统计出现的单词数量。3,开启Spark Streaming消费数据,将产生的日志结果存储到日志中。2,编辑Spark Streaming代码,统计单词出现的数量。

weixin_43894652的博客 1981

北航机器学习期末考试试题2020年春

北航机器学习期末考试试题2020春 看csdn上试题收费,积分还挺高,本着共享的理念,把2020春季ML考试的试题公开,若侵权,立删 前8道题10分,第9题20分 决策树采用ID3算法 对宇宙星球是否适合生存分类 SVM的原理;软间隔、硬间隔;以及对非线性样本点分类 集成学习的原理,以及及串行boosting以及bagging的简单概括 K-means与混合高斯模型的异同以及EM算法的原理,如何计算 马尔可夫随机场最大团;马尔可夫随机场的联合概率分布(势函数表示),贝叶斯网络联合概率分布 PCA主成分基于

qq_43343919的博客 5424

Kafka和Spark Streaming的组合使用学习笔记(Spark 3.5.1)

二、启动Kafaka 1.首先需要启动Kafka,打开一个终端,输入下面命令启动Zookeeper服务: 注意:以上现象是Zookeeper服务器已经启动,正在处于服务状态。不要关闭! 注意:同样不要误以为死机了,而是Kafka服务器已经启动,正在处于服务状态。 2.然后,可以执行如下命令,查看名称为“wordsender”的Topic是否已经成功创建: 注意,所有这些终端窗口都不要关闭,要继续留着后面使用。Kafka和Flume等高级输入源,需要依赖独立的库(jar文件),

m0_74972727的博客 1460

利用绝对式编码器实现电机无限旋转的配置与优化

本文详细解析了如何利用绝对式编码器实现电机的无限旋转功能。通过切换驱动器编码器工作模式、精确计算逻辑位置范围等关键配置步骤,解决了传统方案在多圈计数溢出时的定位难题。该方案无需硬件改造,适用于大型回转台、连续供料系统等需要大范围连续绝对定位的自动化场景。

weixin_29184371的博客 241

JAVA:Spring Boot 集成 Atomikos 实现分布式事务

摘要: Atomikos是一款基于JTA标准的分布式事务协调器,通过两阶段提交(2PC)协议实现跨数据库/消息系统的事务一致性,适用于金融等高要求场景。本文以Spring Boot集成Atomikos为例,演示多数据源(订单库、库存库)的分布式事务管理。核心步骤包括:引入Atomikos依赖、配置XA数据源、设置两阶段提交的MyBatis多数据源,并通过Atomikos协调全局事务,确保跨库操作原子性。代码示例涵盖配置类、YAML定义及MySQL XA数据源初始化,为分布式系统提供强一致性解决方案。

木头 335

Spark Streaming + Kafka集成指南

本文适用于Kafka broker 0.8.2.1及更高版本。这里会说明如何配置Spark Streaming接收Kafka的数据。有两种方法 - 老方法使用Receiver和Kafka的高层API,新方法不适用Receiver。

steanxy的专栏 703

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1291

解析SparkStreaming和Kafka集成的两种方式

spark streaming是基于微批处理的流式计算引擎,通常是利用spark core或者spark core与spark sql一起来处理数据。在企业实时处理架构中,通常将spar...

weixin_45906054的博客 405

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

【AI 智能体】Windows 环境 Hermes Agent(爱马仕)安装详细过程

Windows 环境 Hermes Agent(爱马仕)安装详细过程

congge_study的博客 1834

Spark Streaming 连接kafka Receiver and Direct(官网自译)

转载请标明出处

赵炳泉的博客 383

46.qt quick-自定义非常好看的qml虚拟软键盘-支持换肤、动态加载移除语言(二)

在上章我们学习了45.qt quick-qml虚拟软键盘详解(一)_诺谦的博客-优快云博客 接下来我们便来自定义一款好看的qml软键盘.如下图所示: 支持背景更换、支持动图: 支持动态加载移除语言: 支持拖拽、自由缩小放大: 支持定位坐标: ...

抵抗时间扭曲,坚持做一件有意义的事 4674

Spark Streaming连接Kafka的两种方式 direct 跟receiver 方式接收数据的区别

Receiver是使用Kafka的高层次Consumer API来实现的。 Receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。 然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。 如果要启用高可靠机制,让数据零丢失,就必须启用Spark Streaming的预写日志机制(W...

weixin_30294709的博客 101

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式

Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。

Ganymede的Hadoop世界 9184

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spark Streaming采用Direct Approach(No Receiver)方式连接Kafka消费消息时报错

一、报错信息 Exception in thread "main" java.lang.ClassCastException: kafka.cluster.BrokerEndPoint cannot be cast to kafka.cluster.Broker   18/12/21 11:09:18 INFO BlockManagerMaster: Trying to register B...

GulfMoon 293

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spark-kafka direct方式读取和receiver方式读取的区别

区别 Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。 一、基于Receiver的方式 这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来...

tianyeshiye 582

Spark Streaming Kafka

Spark Streaming 可以⽀持多种数据源,但目前最常用的还是 Kafka 作为数据源。 Spark Streaming的kafka编程主要包括两种模型 1.基于Receiver模式 2.Direct(无Receiver)模式   基于Receiver (spark-streaming-kafka-0-10以上已不支持) 这种方式利用接收器(Receiver)来接收kafk...

擦玻璃的程序员专栏 497

【十四】Spark Streaming整合Kafka使用Receiver方式(使用Scala语言)

官方网站 Kafka提供了新的consumer api 在0.8版本和0.10版本之间。0.8的集成是兼容0.9和0.10的。但是0.10的集成不兼容以前的版本。 这里使用的集成是spark-streaming-kafka-0-8。官方文档 配置SparkStreaming接收从kafka来的数据有两种方式。老的方式要使用Receiver,新的方式是Spark1.3后引进的不用Recei...

Sid小杰的博客 1650

spark连接kafka的两种方式

Reciver方式 spark streaming通过Reciver方式获取kafka的数据实质是:在spark程序的Executor中开Reciver来接收来自kafka的数据,然后spark streaming会启动job去处理这些数据。 因为这些数据是存在内存中的,所以这种方式会容易丢失数据,如果要启用高可靠机制,让数据零丢失,就必须启用Spark Streaming的预写日志机制(Write Ahead Log,WAL)。该机制会同步地将接收到的Kafka数据写入分布式文件系统(比如HDFS)上..

weixin_43854618的博客 3168

Spark Streaming(二十六)DStream基本数据源、高级数据源

输入DStream和Receiver 输入DStream其实就是从数据源接收到的输入数据流的DStream。每个DStream都与一个Receiver对象一一对应。SparkStreaming提供了两种内置数据源支持。 基本的数据源:Streaming API中直接提供的数据源。例如文件系统和套接字连接。 高级数据源:Kafka、Flume、Kinesis等数据源,这种高级数据源需要提供额外Ma...

李玉志的博客 2574

Spark综合学习笔记(十三)SparkStreaming整合Kafka-连接方式和API版本

学习致谢; https://www.bilibili.com/video/BV1Xz4y1m7cv?p=48 介绍 在实际项目中,无论使用Storm还是SparkStreaming与Flink,主要从Kafka实时消费数据进行处理分析,流式数据实时处理技术架构大致如下: SparkStreaming+Kafka流程 流式数据----->(Flume)----->Kafka------>SparkStreaming/StructStreaming/Flink------>Redis/

斯特凡今天也很帅的博客 8299

Spark-Streaming 和Kafka连接的两种方式

本篇文章转载自https://my.oschina.net/u/1250040/blog/908571。 作者对于spark-streaming和Kafka的连接做了比较详细的介绍。对于理解Spark-Streaming和Kafka有很大帮助。概述Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们

stevekangpei的博客 4614

Spark Streaming 接收Kafka数据的两种方式:Receiver和Direct

转载地址:https://blog.youkuaiyun.com/u010670689/article/details/63369916Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。一、基于Receiver的方式这...

nieji3057的博客 538

spark-streaming获取kafka数据的两种方式

简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 一、Receiver方式: 使用kafka的高层次Consumer api来实现的,Receiver从kafka中获取的数据都是存储在spark executor的内存中,然后Spark Streaming启动的job会去处理那些数据。然而,在默认的配置下,这种...

weixin_30287169的博客 116
上一篇: sparkEnv的初始化
下一篇: sparkStreaming连接kafka(Direct)
Java_Soldier
博客等级 码龄10年 27粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值