铭文一级:

Spark Streaming is an extension of the core Spark API that enables scalable,
high-throughput,
fault-tolerant
stream processing of live data streams.

Spark Streaming个人的定义:
将不同的数据源的数据经过Spark Streaming处理之后将结果输出到外部文件系统

特点
低延时
能从错误中高效的恢复:fault-tolerant
能够运行在成百上千的节点
能够将批处理、机器学习、图计算等子框架和Spark Streaming综合起来使用

Spark Streaming是否需要独立安装?

One stack to rule them all : 一栈式

GitHub
https://github.com/apache/spark

spark-submit的使用

使用spark-submit来提交我们的spark应用程序运行的脚本(生产)
./spark-submit --master local[2] \
--class org.apache.spark.examples.streaming.NetworkWordCount \
--name NetworkWordCount \
/home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/examples/jars/spark-examples_2.11-2.2.0.jar hadoop000 9999

如何使用spark-shell来提交(测试)
./spark-shell --master local[2]

import org.apache.spark.streaming.{Seconds, StreamingContext}

val ssc = new StreamingContext(sc, Seconds(1))
val lines = ssc.socketTextStream("hadoop000", 9999)
val words = lines.flatMap(_.split(" "))
val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)
wordCounts.print()
ssc.start()
ssc.awaitTermination()

工作原理:粗粒度
Spark Streaming接收到实时数据流,把数据按照指定的时间段切成一片片小的数据块,
然后把小的数据块传给Spark Engine处理。

铭文二级:

Spark Streaming功能特点:可扩展、高吞吐、容错性

与Spark生态的其他环境的整合:

1、file与RDD   2、与MLib   3、RDD->SQL

有些时候要了解一下发展史,面试可能会问

比如说DataSet、DataFrame是哪个版本提出来的

词频统计实例=>

从github上(https://github.com/apache/spark/blob/master/examples/)可以看源码:

注意两个参数:hostname、port

用spark-submit方式运行(主要用于生产)

进入Spark Streaming的bin目录下:

[运行rm *.cmd删除window上才能运行的脚本使更简洁咯]

步骤一=>

启动终端二运行:nc -lk 9999

步骤二=>

终端一运行指令为:./spark-submit --master local[2] \

--class org.apache.spark.examples.streaming.NetworkWordCount \

在examples/jars里面的jar包 hadoop000 9999

复制指令去bin目录下执行

步骤三=>

去终端二输入测试数据:

a a a c c d e

在终端一可以观察到统计结果

用spark-shell方式运行(主要用于测试)

1、执行 ./spark-shell --master local[2]

2、修改官网的代码

A.删去SparkConf申明语句,因为spark-shell运行时已自动创建

B.StreamingContext的第一个参数sparkConf改为sc

C.修改socketTextStream第一第二个参数为实际情况,删除第三参数

D.添加类的导入语句

import org.apache.spark.streaming.{Seconds, StreamingContext}

3、拷贝本段代码,粘贴去终端运行,方法同spark-submit

粗粒度:按时间段切成小段

细粒度:

【慕课网实战】Spark Streaming实时流处理项目实战笔记八之铭文升级版的更多相关文章

  1. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十之铭文升级版

    铭文一级: 第八章:Spark Streaming进阶与案例实战 updateStateByKey算子需求:统计到目前为止累积出现的单词的个数(需要保持住以前的状态) java.lang.Illega ...

  2. 【慕课网实战】Spark Streaming实时流处理项目实战笔记七之铭文升级版

    铭文一级: 第五章:实战环境搭建 Spark源码编译命令:./dev/make-distribution.sh \--name 2.6.0-cdh5.7.0 \--tgz \-Pyarn -Phado ...

  3. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十四之铭文升级版

    铭文一级: 第11章 Spark Streaming整合Flume&Kafka打造通用流处理基础 streaming.conf agent1.sources=avro-sourceagent1 ...

  4. 【慕课网实战】Spark Streaming实时流处理项目实战笔记二之铭文升级版

    铭文一级: 第二章:初识实时流处理 需求:统计主站每个(指定)课程访问的客户端.地域信息分布 地域:ip转换 Spark SQL项目实战 客户端:useragent获取 Hadoop基础课程 ==&g ...

  5. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十六之铭文升级版

    铭文一级: linux crontab 网站:http://tool.lu/crontab 每一分钟执行一次的crontab表达式: */1 * * * * crontab -e */1 * * * ...

  6. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十五之铭文升级版

    铭文一级:[木有笔记] 铭文二级: 第12章 Spark Streaming项目实战 行为日志分析: 1.访问量的统计 2.网站黏性 3.推荐 Python实时产生数据 访问URL->IP信息- ...

  7. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十二之铭文升级版

    铭文一级: ======Pull方式整合 Flume Agent的编写: flume_pull_streaming.conf simple-agent.sources = netcat-sources ...

  8. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十一之铭文升级版

    铭文一级: 第8章 Spark Streaming进阶与案例实战 黑名单过滤 访问日志 ==> DStream20180808,zs20180808,ls20180808,ww ==> ( ...

  9. 【慕课网实战】Spark Streaming实时流处理项目实战笔记九之铭文升级版

    铭文一级: 核心概念:StreamingContext def this(sparkContext: SparkContext, batchDuration: Duration) = { this(s ...

随机推荐

  1. webpack浅析---入口篇

    webpack有四个核心概念: 入口(entry) 输出(output) loader 插件(plugins) webpack-merge将环境.构建目标.运行时合并 入口: 入口起点是指webpac ...

  2. Java_反射_范型

    虽然从来没有被面过,但是必须知道,因为classForname classloader被面过多次了. 一.Class.forName动态加载  1.编译时加载类是静态加载类,             ...

  3. linq join用法

    单条件: var query = from person in people join pet in pets on person equals pet.Owner select new { Owne ...

  4. git diff 分支1 分支2 --stat命令没有将所有的不同显示出来

    昨天遇到使用git diff 分支1 分支2  --stat命令时打印的文件修改列表,并不全,导致找了一下午的问题没有找到...特此记录,显示不全的原因我还没有找到,特此记录.

  5. opencv 线,椭圆 圆

    //void MyLines() { // Point p1 = Point(20, 30); // Point p2; // p2.x = 400; // p2.y = 400; // Scalar ...

  6. Dottrace 10.0.2 使用心得

    开发环境vs2015 软件:JetBrains dotTrace 10.0.2 刚开始不知道怎么下手,多看了一会还有一位仁兄的解释.算是对某个功能小有入门了. 当前会查看某个方法在抓取快照时间它的执行 ...

  7. 为什么CNN能自动提取图像特征

    1.介绍 在大部分传统机器学习场景里,我们先经过特征工程等方法得到特征表示,然后选用一个机器学习算法进行训练.在训练过程中,表示事物的特征是固定的. 后来嘛,后来深度学习就崛起了.深度学习对外推荐自己 ...

  8. Eclipse中的maven项目搭建

    一.eclipse中的maven设置 1.打开“首选项”----> "maven"---->"Installations".用来查看maven的使用 ...

  9. eclipse中查找某一个字符串

    想要完全匹配查找一个字符串,如iCard,而iCardSys或iiCard这种都不行,可以用正则表达式来查找,如下: 参考链接:http://blog.csdn.net/u014656992/arti ...

  10. Java中方法的重写

    ★★前提:方法的重写建立在继承关系上★★ 在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量. 所谓方法的重写是指子类中的方法与父类中继承 ...