资讯专栏INFORMATION COLUMN

spark系列-结构化数据流-集成kafka数据源

IT那活儿 / 2469人阅读
spark系列-结构化数据流-集成kafka数据源

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!

步  骤


兼容的kafka版本是0.10.0及以上。
1. 添加依赖
2. 创建kafka数据流
3. 创建kafka批处理数据集
4. 数据流每行包含的内容


选项配置


1. 必选项
对于kafka源,对于批处理,流处理以下选项是必选:

2. 可选项



消费者池


初始化消费者非常耗时,尤其在处理时间是关键因素的流场景中,所以spark利用ApacheCommons将kafka消费者集中在executors上。
消费者缓存关键是topic name、topic partition、group id。
以下选项可以配置消费者池(consumer pool):

提取数据时数据池的配置选项:



向kafka写入消息


向kafka写入消息时不可避免会出现重复数据,一个可能解决方案是引入一个主键,再读取时可以执行重复数据消除。
向kafka写入消息的schema应该包括以下列:
注意:如果配置中未指定topic那么topic也是必须的。
如上只有value列是必须的,如果没有指定key则默认是null,如果指定了topic则将写入指定的topic,除非配置选项中指定了topic,否则必须指定topic列,配置选项中指定的topic优先级高,如果未指定partition列,则由生产者进行计算处理,可以通过设置kafka.partitioner.class选项指定分区器,如果未指定,则使用默认分区器。
以下选项对于kafka sink不管是批查询还是流查询都是必须的:
以下是可选选项:
基于流查询创建kafka sink:
//选项中指定topic。
基于批查询创建kafka sink:
//选项中指定topic。
//指定topic列。


生产者池


有消费者池,也有生产者池,生产者池配置:

Kafka特定配置
  • 消费者配置选项。

  • 生产者配置选项。


安   全


0.9.0.0版本kafka引入了一些提高kafka集群安全性的选项,值得注意的是安全性是可选的,默认是关闭的,spark支持以下针对kafka集群认证方法
委托令牌(Delegation token),通过这种方式,可以通过spark参数配置应用程序,并且可能不需要JAAS登录配置,关于委托令牌可以通过以下链接
http://kafka.apache.org/documentation/#security_delegation_token
该过程使用委托令牌初始化,当设置了spark.kafka.clusters.${cluster}.auth..bootstrap.servers,spark按照优先级考虑一下登录选项。
JAAS登录配置,通过例子进行说明:
1)keytab file
2)Kerberos 凭据缓存
委托令牌(delegation token)可以通过设置spark.security.credentials.kafka.enabled为false(默认还是true)。
Spark可以配置为使用以下身份验证协议来获取令牌(它必须与Kafka broker配置匹配):
SASL SSL(默认协议),SSL,SASL PLAINTEXT(用于测试)。
获取令牌成功之后,spark向其他节点进行分发,令牌使用SCRAM 登录模块进行登录认证,因此必须进行相应的配置(spark.kafka.clusters.${cluster}.sasl.token.mechanism(默认值是SCRAM-SHA-512)),该参数必须与kafka broker配置参数匹配。
当令牌在executor上可用时,spark会按优先顺序考虑以下登录选项
JAAS login configuration,
委托令牌,有关详细信息,请参阅spark.kafka.clusters.${cluster}.target.bootstrap.servers.regex参数。
如果上述任何一项都不适用,则假定为不安全连接。
配置选项:
JAAS登录配置必须放置在Spark尝试访问Kafka群集的所有节点上。这提供了应用任何自定义身份验证逻辑的可能性,维护成本更高。这可以通过几种方式实现。一种可能性是提供额外的JVM参数,例如:






本文作者:潘宗昊

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129583.html

相关文章

  • 数据入门指南(GitHub开源项目)

    摘要:项目地址前言大数据技术栈思维导图大数据常用软件安装指南一分布式文件存储系统分布式计算框架集群资源管理器单机伪集群环境搭建集群环境搭建常用命令的使用基于搭建高可用集群二简介及核心概念环境下的安装部署和命令行的基本使用常用操作分区表和分桶表视图 项目GitHub地址:https://github.com/heibaiying... 前 言 大数据技术栈思维导图 大数据常用软件安装指...

    guyan0319 评论0 收藏0
  • 数据框架hadoop服务角色介绍

    摘要:大数据框架服务角色介绍翻了一下最近一段时间写的分享,发行版本下载安装运行环境部署等相关内容几乎都已经写了一遍了。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 大数据框架hadoop服务角色介绍翻了一下最近一段时间写的分享,DKHadoop发行版本下载、安装、运行环境部署等相关内容几乎都已经写了一遍了。虽然有的地方可能写的不是很详细,个人理解水平有限还请见谅吧!我记得在...

    atinosun 评论0 收藏0
  • 阿里云正式推出消息队列Kafka:全面融合开源生态

    摘要:在全面兼容Apache Kafka生态的基础上,消息队列Kafka彻底解决ApacheKafka稳定性不足的长期痛点,并且支持消息无缝迁移到云上。 近日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态。在全面兼容Apache Kafka生态的基础上,消息队列Kafka还具备了超易用,超高可用可靠性,扩缩容不操心,全方位安全诊断,数据安全有保障的特点。可用行达99.9%,数据可靠行99...

    aisuhua 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<