Spark
☞空白页
这个作者很懒,什么都没留下…
展开
-
SparkStreaming手动维护Kafka Offset的几种方式
Spark Streaming No Receivers 方式的createDirectStream 方法不使用接收器,而是创建输入流直接从Kafka 集群节点拉取消息。输入流保证每个消息从Kafka 集群拉取以后只完全转换一次,保证语义一致性。但是当作业发生故障或重启时,要保障从当前的消费位点去处理数据(即Exactly Once语义),单纯的依靠SparkStreaming本身的机制是不太理想的,生产环境中通常借助手动管理offset的方式来维护kafka的消费位点。本文分享将介绍如何手动管理Kafka原创 2020-11-27 17:23:38 · 585 阅读 · 0 评论 -
双流join(SparkStreaming)
一、概述1.1 需求分析Spark Streaming实现两个流的join操作,如:一个流是订单数据,另一个流是订单详情数据,现需要将两个流按照某个公共字段连接进行join操作,同时订单数据和订单详情数据理论上是同时产生的,但考虑到实际情况即:延迟,结合Spark Streaming的批次处理实时数据的理念,这两个流的数据不一定是同时到达的,意思就是订单一的数据已经过来了,可能订单详情一的一系列数据早到或者迟到,这就导致直接做join时会join不上,且数据会丢失。1.2 需求实现为了保证早原创 2020-11-13 16:53:50 · 1016 阅读 · 0 评论 -
通过Spark生成HFile,并以BulkLoad方式将数据导入到HBase
在实际生产环境中,将计算和存储进行分离,是我们提高集群吞吐量、确保集群规模水平可扩展的主要方法之一,并且通过集群的扩容、性能的优化,确保在数据大幅增长时,存储不能称为系统的瓶颈。具体到我们实际的项目需求中,有一个典型的场景,通常会将Hive中的部分数据,比如热数据,存入到HBase中,进行冷热分离处理。我们采用Spark读取Hive表数据存入HBase中,这里主要有两种方式: 通过HBase的put API进行数据的批量写入 通过生成HFile文件,然后通过BulkLoad方式将数据原创 2020-10-30 13:29:18 · 702 阅读 · 0 评论