spark点点滴滴 —— spark streaming+kafka流式计算实战

概述

本篇不会讲spark streaming原理,会直接进入实战,因此建立在你对spark有了基本的了解基础之上。
不同于storm等流式计算框架的设计,spark streaming的流式计算框架本质上还是spark的批处理框架,只是将流式数据按时间维度切分为细粒度的批处理框架,因此了解spark的话spark streaming应该也不难理解。
我们以一张图来直观的看看spark streaming的基本原理:
这里写图片描述
下面我们直接进入spark streaming+kafka实战。

实战

环境

环境 说明
hadoop 版本2.6
spark 版本2.0.2
spark模式 spark on yarn
kafka 版本0.8.2

场景描述

在实际生产环境中,我们采用spark streaming进行流式计算,数据源一般接kafka,输出方式有很多,有直接存储数据的,有发送给kafka消息队列供下游继续处理的,简单的视图如下:
这里写图片描述
当然也可以继续发送给kafka到下游,本篇我们讲的是直接发送到kafka消息队列的情况。
本篇我们要采用的场景是:
假如我们kafka发送过来的是web请求日志,其中包含了请求的url,假如我们用流式计算来解析日志,提取出其中的url并发送出去。
包含url的日志格式形如:

[29/Mar/2017:11:00:14 +0800] "POST xxxxx?aaa=111&bbb=222&ccc=333 HTTP/1.1" nYyU1pZQVFBQUFBJCQAAAAAAAAAAAEAAAANZUtcsrvKx8K~tv

我们要做的是从杂乱的日志文本中提取出“GET/POST xxxx HTTP/1.1”这段数据,并发送给下游处理。
好,下面直接开始我们的实战。

java版

先直接上代码:

maven依赖

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.10</artifactId>
            <version>2.0.2</version>
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值