图解SparkStreaming与Kafka的整合,这些细节大家要注意!

前言

老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望帮助更多自学的小伙伴。由于老刘是自学大数据开发,肯定会存在一些不足,还希望大家能够批评指正,让我们一起进步!

今天讲述的是SparkStreaming与Kafka的整合,这篇文章非常适合刚入门的小伙伴,也欢迎大家前来发表意见,老刘这次会用图片的形式讲述别人技术博客没有的一些细节,这些细节对刚入门的小伙伴是非常有用的!!!

正文

为什么有SparkStreaming与Kafka的整合?

首先我们要知道为什么会有SparkStreaming与Kafka的整合,任何事情的出现都不是无缘无故的!

我们要知道Spark作为实时计算框架,它仅仅涉及到计算,并没有涉及到数据的存储,所以我们后期需要使用spark对接外部的数据源。SparkStreaming作为Spark的一个子模块,它有4个类型的数据源:

1.socket数据源(测试的时候使用)

2.HDFS数据源(会用到,但是用得不多)

3.自定义数据源(不重要,没怎么见过别人会自定义数据源)

4.扩展的数据源(比如kafka数据源,它非常重要,面试中也会问到)

下面老刘图解SparkStreaming与Kafka的整合,但只讲原理,代码就不贴了,网上太多了,老刘写一些自己理解的东西!

SparkStreaming整合Kafka-0.8

SparkStreaming与Kafka的整合要看Kafka的版本,首先要讲的是SparkStreaming整合Kafka-0.8。

在SparkStreaming整合kafka-0.8中,要想保证数据不丢失,最简单的就是靠checkpoint的机制,但是checkpoint机制有一个毛病,对代码进行升级后,checkpoint机制就失效了。所以如果想实现数据不丢失,那么就需要自己管理offset。

大家对代码升级会不会感到陌生,老刘对它好好解释一下!

我们在日常开发中常常会遇到两个情况,代码一开始有问题,改一下,然后重新打包,重新提交;业务逻辑发生改变,我们也需要重新修改代码!

而我们checkpoint第一次持久化的时候会整个相关的jar给序列化成一个二进制文件,这是一个独一无二的值做目录,如果SparkStreaming想通过checkpoint恢复数据,但如果代码发生改变,哪怕一点点,就找不到之前打包的目录,就会导致数据丢失!

所以我们需要自己管理偏移量!

用ZooKeeper集群管理偏移量,程序启动后,就会读取上一次的偏移量,读取到数据后,SparkStreaming就会根据偏移量从kafka中读取数据,读到数据后,程序会运行。运行完后,就会提交偏移量到ZooKeeper集群,但有一个小问题,程序运行挂了,但偏移量未提交,结果已经部分到HBase,再次重新读取的时候,会有数据重复,但只影响一批次,对大数据来说,影响太小!

但是有个非常严重的问题,当有特别多消费者消费数据的时候,需要读取偏移量,但ZooKeeper作为分布式协调框架,它不适合大量的读写操作,尤其是写操作。所以高并发的请求ZooKeeper是不适合的,它只能作为轻量级的元数据存储,不能负责高并发读写作为数据存储。

根据上述内容,就引出了SparkStreaming整合Kafka-1.0。

SparkStreaming整合Kafka-1.0

直接利用kafka保存offset偏移量,可以避免利用ZooKeeper存储offset偏移量带来的风险,这里也有一个注意的地方,kafka有一个自动提交偏移量的功能,但会导致数据丢失。

因为设置自动提交就会按照一定的频率,比如每隔2秒自动提交一次偏移量。但我截获一个数据后,还没来得及处理,刚好到达2秒就把偏移量提交了,于是就导致数据丢失,所以我们一般手动提交偏移量!

如何设计告警方案?

在日常开发工作中,我们需要对实时任务设计一个监控方案,因为实时任务没有监控,程序就在裸奔,任务是否有延迟等情况无法获取,这是非常可怕的情况!

这个只是利用KafkaOffsetmonitor设计的一个方案,利用它对任务进行监控,接着利用爬虫技术获取监控的信息,再把数据导入到openfalcon里面,在openfalcon里根据策略配置告警或者自己研发告警系统,最后把信息利用企业微信或者短信发送给开发人员!

总结

好啦!本篇主要讲解了SparkStreaming和Kafka的整合过程,老刘花了很多心思讲了很多细节,对大数据感兴趣的伙伴记得给老刘点赞关注。最后,如果有疑问联系公众号:努力的老刘,进行愉快的交流!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容