码迷,mamicode.com
首页 > 其他好文 > 详细

Spark Streaming 第一课:案例动手实战并在电光石火间理解其工作原理

时间:2016-04-18 13:46:16      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

Spark Streaming 第一课:案例动手实战并在电光石火间理解其工作原理

 

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

技术分享

技术分享

第一个观点:一切都应该是流处理。无处不在。

一定要做流式处理

 

Flink生不逢时

 

你选择Storm唯一的理由就是能够做到毫秒级的响应

 

2016年DT 大数据梦工厂制定版要把spark streaming 的延迟速度控制在100ms以内. 结果就是流处理Spark Streaming一统天下。

因为:

1.他提供的storm API非常容易实现业务的逻辑

2.数据流尽量可以直接调Spark SQL 或使用图计算以及Spark core.

 

现在Spark Streaming最大的问题是延迟速度

 

下一个目标就是控制在50ms以内

 

下面我们动手实战:

 

先启动下Spark集群:

技术分享技术分享

我们从集群里面打开下官方网站:

技术分享技术分享

这边就是运行一个streaming的程序:统计这个时间段内流进来的单词出现的次数. 它计算的是:他规定的时间段内每个单词出现了多少次

cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6/bin

./run-example streaming.NetworkWordCount localhost 9999

技术分享

技术分享

./bin/run-example streaming.NetworkWordCount localhost 9999

技术分享技术分享

技术分享

接受这个数据进行加工,就是流处理的过程,刚才那个WordCount就是以1s做一个单位。

 

刚才运行的时候,为什么没有结果呢?因为需要数据源,

下面我们去获取数据源:

技术分享技术分享


新开一个命令终端,然后输入:

nc -lk 9999

技术分享

技术分享

现在我们拷贝数据源进入运行:

技术分享技术分享

技术分享

技术分享

然后按回车运行

技术分享技术分享

技术分享技术分享

他计算的过程和我们讲课的过程是一样的,是一句句去理解的。

 

Storm天生是一条一条是计算的(基于record内容)

而spark Streaming 处理了大量的多句话构成的数据(基于时间的,和内容无关)

计算的时间是一秒钟

使用storm唯一的理由是为了获得延迟

 

Spark Streaming也可以一条条处理

Spark Streaming一般和kafka配合

 

数据可能来自于各种终端,再推给Kafka

 

流程图:

技术分享技术分享


没有输入数据事打印的是空结果

技术分享

技术分享技术分享

技术分享

但是实际上,这个Job是框架帮我们产生的,框架是每隔一秒钟就会产生Job.

这个Spark Streaming 要拿到我们写的WordCount的代码就必须产生?

 

内心没想:我现在写业务逻辑的数据是想那一秒钟的还是想两天的数据?一定是想当时的一秒钟的数据。

 

编程的时候想的是RDD的模型,而实际上是每一秒中都产生一个实际的作业Job。Job之所以有实例是因为有RDD实例的产生,也就是说你说的代码是作业的模板。这个模板在特定的时空中就会产生一个实例。这是类和Object的关系。

技术分享

技术分享

RDD的模板是DStream,RDD 之间有依赖关系,那DStream也有依赖关系。就构成了DStream 有向无环图。

这个DAG图,是模板,每隔1秒钟产生Job.

 

Spark Streaming只不过是破了RDD上面一层薄薄的封装而已。

 

你写的代码不能产生Job,只有框架才能产生Job.

没算完就只能调优了.


课程笔记来源:
DT大数据梦工厂IMF传奇行动课程。YY直播永久课堂频道68917580每晚8点准时开课。
技术分享

技术分享

技术分享





Spark Streaming 第一课:案例动手实战并在电光石火间理解其工作原理

标签:

原文地址:http://blog.csdn.net/gongmeiyan/article/details/51177415

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!