这篇博客是基于Spark Streaming整合Kafka-0.8.2.1官方文档. 本文主要讲解了Spark Streaming如何从Kafka接收数据.Spark Streaming从Kafka接收数据主要有两种办法,一种是基于Kafka high-level API实现的基于Receivers的接收方式,另一种是从Spark 1.3版本之后新增的无Receivers的方式.这两种方式的代码编写,性能表现都不相同.本文后续部分对这两种方式逐一进行分析. 一.基于Receiver的模式 这种模…
spark streaming中维护kafka偏移量到外部介质 以kafka偏移量维护到redis为例. redis存储格式 使用的数据结构为string,其中key为topic:partition,value为offset. 例如bobo这个topic下有3个分区,则key-value结构如下: bobo:0的偏移量为x bobo:1的偏移量为y bobo:2的偏移量为z 消费时指定offset 主要是如下两个方法: createKafkaStream()创建kakfa流 getOffsets…
环境准备: ubuntu 开发环境: jdk 1.8 scala:2.11.0 spark 2.0 zookeeper 3.4.6 kafka  2.12-0.10.2.0 开始整合: 1 zookeeper的安装,这里我使用的zookeeper版本为3.4.6 a, 下载zookeeper安装包zookeeper-3.4.6.tar.gz   b, 解压安装文件到/usr/local/ 这是我的安装目录,具体可根据自己的情况而定: sudo tar -zxvf zookeeper-3.4.6.…
在kafka 目录下执行生产消息命令: ./kafka-console-producer  --broker-list nodexx:9092 --topic  201609 在spark bin 目录下执行 ./run-example streaming.JavaDirectKafkaWordCount nodexx:9092, nodexx:9092 201609 import java.util.HashMap; import java.util.HashSet; import java.…
https://github.com/lw-lin/CoolplaySpark/blob/master/Spark%20Streaming%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%E7%B3%BB%E5%88%97/3.1%20Receiver%20%E5%88%86%E5%8F%91%E8%AF%A6%E8%A7%A3.md https://github.com/apache/spark/blob/branch-2.0/external/kafka-0-8…
本文主要是想聊聊flink与kafka结合.当然,单纯的介绍flink与kafka的结合呢,比较单调,也没有可对比性,所以的准备顺便帮大家简单回顾一下Spark Streaming与kafka的结合. 看懂本文的前提是首先要熟悉kafka,然后了解spark Streaming的运行原理及与kafka结合的两种形式,然后了解flink实时流的原理及与kafka结合的方式. kafka kafka作为一个消息队列,在企业中主要用于缓存数据,当然,也有人用kafka做存储系统,比如存最近七天的数据.…
1,基于Flume的Push模式(Flume-style Push-based Approach)      Flume被用于在Flume agents之间推送数据.在这种方式下,Spark Streaming可以很方便的建立一个receiver,起到一个Avro agent的作用.Flume可以将数据推送到改receiver. 1),需求 从集群中选择一台机器, 当Flume+Spark Streaming程序运行时,需要保证Spark的一个worker运行在同一台机器上. Flume可以通过…
broker.id  默认值:无 每一个broker都有一个唯一的id,这是一个非负整数,这个id就是broker的"名字",这样就允许broker迁移到别的机器而不会影响消费者.你可以选择任意一个数字,只要它是唯一的. log.dirs 默认值:/tmp/kafka-logs 一个用逗号分隔的目录列表,可以有多个,用来为Kafka存储数据.每当需要为一个新的partition分配一个目录时,会选择当前的存储partition最少的目录来存储. port 默认值:6667 server…
这篇文章我已经看过两遍了.收获颇多,抽个时间翻译下,先贴个原文链接吧.也给自己留个任务 http://blog.cloudera.com/blog/2015/03/exactly-once-spark-streaming-from-apache-kafka/…
Design Patterns for using foreachRDD dstream.foreachRDD是一个强大的原语,允许将数据发送到外部系统.然而,了解如何正确有效地使用该原语很重要.避免一些常见的错误如下. 通常向外部系统写入数据需要创建一个连接对象(例如与远程服务器的TCP连接),并使用它将数据发送到远程系统.为此,开发人员可能无意中尝试在Spark驱动程序创建连接对象,然后尝试在Spark workers中使用它来将记录保存在RDD中.例如(在Scala中): dstream.…