浪院长 | spark streaming的使用心得

今天,主要想聊聊spark streaming的使用心得。

1,基本使用

主要是转换算子,action,和状态算子,这些其实,就按照api手册或者源码里接口介绍结合业务来编码。

其实,想用好spark streaming 掌握spark core,spark rpc,spark 任务调度,spark 并行度等原理还非常有必要。

2,中间状态缓存

说到中间算子大家肯定都会想到UpdateStateByKey等状态。里面很多注意事项,比如顺序性,key的超时机制维护。这个适合数据量不多,尤其是key的维度不多,value不大的情况。

当然数据量上来了,要想维护中间状态怎么办?其实这个时候肯定是第三方存储,比如redis,alluxio。redis更适合那种key带超时机制的,并且数据量肯定不能过大。而alluxio就很适合那种高吞吐量的,比如去重统计。

3,结果输出

direct streaming能保证仅一次处理,但是要求输出存储支持密等性,或者主动将结果更改为存在更新不存在插入。当然,如果外部存储系统支持事务那就更嗨,能实现恰一次处理。

实际上在offset维护这个层面上,spark streaming 不同版本于kafka不同版本结合实现有很大不同。

4,监控告警及故障自动恢复

我觉得对于监控告警及故障自动恢复,重要程度不亚于业务场景。因为再好的业务实现,架不住系统挂掉你不知道。因为你总不能二十四小时盯着系统。而且很多公司对故障自动恢复都有kpi,比如3min,人工去检测故障并恢复不太可能,需要自己实现一套监控系统。

5,调优

调优对于spark streaming非常重要,因为一个批次处理延迟就会导致job堆积,结果输出延迟,深圳任务挂掉数据丢失。调优其实最注重对spark 原理把控,数据量的了解及资源和数据的关系。

6,源码

源码阅读,为了帮助大家更透彻的理解原理。主要会分三块:

spark streaming 与kafka-0.8.2 direct stream。

spark streaming 与kafka-0.8.2 receiver based stream。

spark streaming 与kafka-0.10.2 direct api。

原文发布于微信公众号 - Spark学习技巧(bigdatatip)

原文发表时间:2018-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据之美

手把手教你 Spark 性能调优

0、背景 上周四接到反馈,集群部分 spark 任务执行很慢,且经常出错,参数改来改去怎么都无法优化其性能和解决频繁随机报错的问题。 看了下任务的历史运行情况,...

1.5K100
来自专栏我是攻城师

你有一个好的归档习惯吗?

29940
来自专栏Hadoop实操

如何在VMware上部署Hadoop

本文主要讲述如何在虚拟机(VM)上部署Hadoop,因为虚拟化技术很多家都有,但本文讨论的是VMware。建议阅读人群为:系统管理员,架构师或者开发人员。

769110
来自专栏VMCloud

【解析向】腾讯云的Windows Server日志配置收集工具是个什么鬼?(1)

楼主在使用腾讯云IaaS时,经常遇到一些疑似平台问题的Windows疑难杂症,通常会向腾讯云工单提交OS工单,让其专业工程师来排查,毕竟我买IaaS的CVM要来...

639160
来自专栏IT笔记

分布式与集群有什么区别

一个是3个字,另一个2个字 集群一般被分为三种类型,高可用集群(High-availability (HA) clusters )如RHCS、LifeKeepe...

38040
来自专栏MessageQueue

初探Kafka Streams

Kafka在0.10版本推出了Stream API,提供了对存储在Kafka内的数据进行流式处理和分析的能力。

17310
来自专栏北京马哥教育

Redis集群技术

1. Redis常见集群技术 长期以来,Redis本身仅支持单实例,内存一般最多10~20GB。这无法支撑大型线上业务系统的需求。而且也造成资源的利用率过低——...

43570
来自专栏架构之路

大数据时代的技术hive:hive介绍

  我最近研究了hive的相关技术,有点心得,这里和大家分享下。   首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性:   1....

34740
来自专栏运维前线

阿里&百度&腾讯&facebook&Microsoft&Google开源项目汇总

BAT && YMFT Tencent GitHub地址:https://github.com/Tencent/tinker Tinker是Android的...

48180
来自专栏大数据和云计算技术

大数据和云计算技术周报(第40期):NoSQL特辑

本期有 HBase、HBase+ES、StreamSets、explain、Cassandra、Redis。 希望大家会喜欢!

12120

扫码关注云+社区

领取腾讯云代金券