Spark Streaming--应用与实战(五)

  前期的一系列 Spark Streaming相关博客 其实还没写完,对于宜人蜂巢这样一个多维度的实时数据抓取服务来讲,对性能的要求极高,需要更多的压测与性能检测。 还有一些优化和监控,一直没更新主要是因为还不够完善,但是最近也没时间来弄了。虽然不完善但是还是可以写写已经完成的,因为也有不少网友通过微信和邮件联系到了我,也讨论了一些问题,后续再继续跟进吧。

Streaming 持续优化之HBase

Spark Streaming--应用与实战(四)

  对项目做压测与相关的优化,主要从内存(executor-memory和driver-memory)、num-executors、executor-cores,以及代码层面做一些测试和改造。

压测

  1. spark-submit –master yarn-client –conf spark.driver.memory=256m –class com.xiaoxiaomo.KafkaDataStream –num-executors 1 –executor-memory 256m –executor-cores 2 –conf spark.locality.wait=100ms hspark.jar 3 1000
    Spark streaming 处理速度为3s一次,每次1000条
    Kafka product 每秒1000条数据, 与上面spark consumer消费者恰好相等。结果:数据量大导致积压,这个过程中active Batches会越变越大.

Spark Streaming--应用与实战(三)

  第一篇介绍了项目背景,为什么需要对架构进行一些改造,以及为啥要引入SparkStreaming,第二篇就是一些具体的方法实现,
第三篇,该篇主要在代码运行起来的情况下来看一下任务的运行情况主要是streaming的监控界面,以及我们怎么去通过监控界面发现问题和解决问题。

监控

  • 官网中指出,spark中专门为SparkStreaming程序的监控设置了额外的途径,当使用StreamingContext时,在WEB UI中会出现一个”Streaming”的选项卡,
    WEB UI中的”Streaming”选项卡

Spark Streaming--应用与实战(二)

然后就开始写代码了

  • 总体思路就是:
  1. put数据构造json数据,写入kafka;
  2. spark streaming任务启动后首先去zookeeper中去读取offset,组装成fromOffsets;
  3. spark streaming 获取到fromOffsets后通过KafkaUtils.createDirectStream去消费Kafka的数据;
  4. 读取kafka数据返回一个InputDStream的信息,foreachRDD遍历,同时记录读取到的offset到zk中;
  5. 写入数据到HBase
    详细一点的架构图

Spark Streaming--应用与实战(一)

  接下来的几篇博客是一个连续的部分,主要分为了:

  1. SparkStreaming-应用与实战(一),讲解背景与架构改造,以及为什么使用spark streaming
  2. SparkStreaming-应用与实战(二),通过代码实现具体细节,并运行项目
  3. SparkStreaming-应用与实战(三),对streaming监控的介绍以及解决实际问题
  4. SparkStreaming-应用与实战(四),对项目做压测与相关的优化
  5. SparkStreaming-应用与实战(五),Streaming优化之HBase
  6. SparkStreaming-应用与实战(六),Streaming任务的管理及监控

一、背景

  • 笔者所在部门宜人蜂巢 ,是由李善仁 宜人贷副总裁,宜人蜂巢负责人 2013年创建。宜人蜂巢 是做什么的?笔者在这里简单表述一下宜人蜂巢数据科学驱动的互联网风控解决方案,通过千万级爬虫并发技术、计算机视觉技术、机器学习技术等;实时数据采集源;鲜活信用分析特征提取;多维度特征下的欺诈行为交叉检测等一系列科技手段助力金融生态和谐健康发展。
  • 在大数据风控领域,数据是一切工作的根基。数据量的多少、维度的多少,抓取的速度、成功率都是评判数据质量、获取能力的重要条件。在经过用户授权的情况下,宜人蜂巢可以实现对“社交、电商、金融、信用、社保”五大维度的实时数据抓取。宜人蜂巢正在积极与银行、电商、电信运营商、保险公司以及社保基金等机构展开合作,进一步提高数据抓取的工作效率。
  • 所以在大量数据获取之后,对于底层的数据存储依赖也是相当高的,传统的数据库已经没法在支持,对底层数据服务架构的改造迫在眉睫。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器