5分钟spark streaming实践之 与kafka联姻

你:kafka是什么?

我:嗯,这个嘛。。看官网。

Apache Kafka? is a distributed streaming platform

Kafka is generally used for two broad classes of applications: Building real-time streaming data pipelines that reliably get data between systems or applications,Building real-time streaming applications that transform or react to the streams of data

你:我虽然英语很好,但是请你用中文回答嘛,或者自己的语言。

我:好,翻译下,kafka很牛

你:哎,你这个水平,我走了。。。

我:别,我是认真严肃的,用数据说话,看图,spark和kafka都是属于上升趋势,此图来源:

https://trends.google.com/trends/explore?date=all&q=%2Fm%2F0fdjtq,%2Fm%2F0ndhxqz,%2Fm%2F0zmynvd

你:还是没有回答我的问题,kafka可以做什么?

我:问题真多,本系列风格是做,做,做,优雅地说实践,要想找答案,请移步官网。

5分钟目标

练习spark 与kafka集成的API,要求和上次一样,必须可以任意地在浏览器中码代码和运行。

简单啊,和上次那个流程一样开始, 但是,等等,我有一个一千万的想法,就差个程序员帮我实现,哦 错了,不是差个程序员,是差个kafka集群,我这个本地怎么setup呢?

先来个OverView:

图中大致给出了一次执行流程,其中的每个组件都是个很大的topic,一般公司中有专门的团队在维护或者二次开发,本博客只是搭建一个可以学习,能够work的pipeline,还有我们的目标是学习spark api,以此能够运用相关业务中,所以各个组件搭建不是重点。

以下不算在5分钟里面(环境搭建是一次性的工作,开发是个无限迭代循环)

浏览器,zeppelin,spark 这部分昨天的5分钟里面已经完成,所以剩下的就是本地搭建个kafka cluster了。

kafka cluster setup ,the easier way  https://github.com/wurstmeister/kafka-docker

1.git clone https://github.com/wurstmeister/kafka-docker.git

2.修改KAFKA_ADVERTISED_HOST_NAME in  docker-compose.yml  为你本机

3. docker-compose up -d

看到这三步就可以完成,是不是很欣慰? 哈,少年,难道你不知道有墙?反正我是用代理才搞定的,时间也是发了半上午。

不要问我git ,docker-compose 是什么鬼? 不懂请自行google。

还是不行,要不你试试kafka官网自行安装?

好吧,5分钟到底想做什么?

1.kafka 的某个topic stream里面存的是些因为句子比如(spark is fun)

2.spark实时的读取这个topic,不断的计算句子中词的次数,所以结果就是,(spark,1),(is,1),(fun,1)

开始计时:

1. docker run  -p 8080:8080 --name zeppelin fancyisbest/zeppeinsparkstreaming:0.2

2.进入http://localhost:8080/, 找到kafka integration notebook

3. 修改bootstrap server 参数, 运行代码, bingo,完成上图:

5分钟,这算是作弊吗?

我们的目标是探索spark 和integration的API,你在notebook里面可以尝试各种不同参数组合和不同的API,或者实现到不同的业务逻辑,别的费时间工作要么是一次性的,我准备好的模版代码也是让你能尽快运行起来。

什么?你没有得到结果?

注意啊,我省了向kafka里面创建topic,插入数据这些步骤,以下命令提供参考完成这些动作

1.进入kafka 容器,docker exec -it c81907e90cc2 /bin/bash

2.创建topic :  kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test

3.向topic写入数据:kafka-console-producer.sh --broker-list localhost:9092 --topic test

还有什么问题吗?请留言,期待与你共同学习与探讨

后续: 见证 exactly once语义。

参考:

http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html

https://kafka.apache.org/

https://github.com/wurstmeister/kafka-docker

原文地址:https://www.cnblogs.com/dateInsigts/p/8624510.html

时间: 2024-11-10 14:25:23

5分钟spark streaming实践之 与kafka联姻的相关文章

Spark学习八:spark streaming与flume和kafka集成

Spark学习八:spark streaming与flume和kafka集成 标签(空格分隔): Spark Spark学习八spark streaming与flume和kafka集成 一Kafka 二flume和kafka的集成 三kafka和spark streaming的集成方式一kafka推送 四kafka和spark streaming的集成方式一spark streaam主动获取 五spark stream的高级应用updateStateByKey实现累加功能 六spark stre

Spark Streaming实践和优化

发表于:<程序员>杂志2016年2月刊.链接:http://geek.csdn.net/news/detail/54500 作者:徐鑫,董西成 在流式计算领域,Spark Streaming和Storm时下应用最广泛的两个计算引擎.其中,Spark Streaming是Spark生态系统中的重要组成部分,在实现上复用Spark计算引擎.如图1所示,Spark Streaming支持的数据源有很多,如Kafka.Flume.TCP等.Spark Streaming的内部数据表示形式为DStrea

使用 Kafka 和 Spark Streaming 构建实时数据处理系统(转)

原文链接:http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/index.html?ca=drs-&utm_source=tuicool 引言 在很多领域,如股市走向分析, 气象数据测控,网站用户行为分析等,由于数据产生快,实时性强,数据量大,所以很难统一采集并入库存储后再做处理,这便导致传统的数据处理架构不能满足需要.流计算的出现,就是为了更好地解决这类数据在处理过程中遇到的问题.与传统架构不同,流计算模型

整合Kafka到Spark Streaming——代码示例和挑战

作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中. 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版本中已发生了一些变化,比如HA策略: 通过Spark Contributor.Spark布道者陈超我

spark streaming集成kafka

Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spark等都支持与Kafka集成. Spark streaming集成kafka是企业应用中最为常见的一种场景. 一.安装kafka 参考文档: http://kafka.apache.org/quickstart#quickstart_createtopic 1.安

Spark Streaming和Kafka集成深入浅出

写在前面 本文主要介绍Spark Streaming基本概念.kafka集成.Offset管理 本文主要介绍Spark Streaming基本概念.kafka集成.Offset管理 一.概述 Spark  Streaming顾名思义是spark的流式处理框架,是面向海量数据实现高吞吐量.高可用的分布式实时计算.关于spark的安装可以参考Spark入门.Spark Streaming并非像Storm那样是真正的流式计算,两者的处理模型在根本上有很大不同:Storm每次处理一条消息,更多详细信息可

Spark 系列(十六)—— Spark Streaming 整合 Kafka

一.版本说明 Spark 针对 Kafka 的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8 和 spark-streaming-kafka-0-10,其主要区别如下: spark-streaming-kafka-0-8 spark-streaming-kafka-0-10 Kafka 版本 0.8.2.1 or higher 0.10.0 or higher AP 状态 Deprecated从 Spark 2.3.0 版本开始,Kafka 0.8 支持已被弃用

Spark Streaming:大规模流式数据处理的新贵(转)

原文链接:Spark Streaming:大规模流式数据处理的新贵 摘要:Spark Streaming是大规模流式数据处理的新贵,将流式计算分解成一系列短小的批处理作业.本文阐释了Spark Streaming的架构及编程模型,并结合实践对其核心技术进行了深入的剖析,给出了具体的应用场景及优化方案. 提到Spark Streaming,我们不得不说一下BDAS(Berkeley Data Analytics Stack),这个伯克利大学提出的关于数据分析的软件栈.从它的视角来看,目前的大数据处

4. Spark Streaming解析

4.1 初始化StreamingContext import org.apache.spark._ import org.apache.spark.streaming._ val conf = new SparkConf().setAppName(appName).setMaster(master) val ssc = new StreamingContext(conf, Seconds(1)) // 可以通过 ssc.sparkContext 来访问 SparkContext // 或者通过已