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

Spark 项目实战企业级,源码深度剖析,机器学习,数据分析

时间:2019-07-22 15:22:56      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:格式   源码   初始化   工具类   park   读取配置   imageview   检查   工具   

同学们在学习Spark Steaming的过程中,可能缺乏一个练手的项目,这次通过一个有实际背景的小项目,把学过的Spark Steaming、Hbase、Kafka都串起来。

1. 项目介绍

1.1 项目流程

Spark Streaming读取kafka数据源发来的json格式的数据流,在批次内完成数据的清洗和过滤,再从HBase读取补充数据,拼接成新的json字符串写进下游kafka。

1.2 项目详解

2. 环境准备

2.1 组件安装

首先需要安装必要的大数据组件,安装的版本信息如下:

Spark 2.1.2

kafka 0.10.0.1

HBase 1.2.0

Zookeeper 3.4.5

2.2 Hbase Table的创建

Hbase创建table student,列族名为cf,并存入两条数据

2.3 Kafka Topic的创建

创建kafka的两个topic,分别是kafka_streaming_topic、hello_topic。

3. Code

3.1 项目结构

 

技术图片

简单解释一下:

Output、Score、Output三个是Java Bean

MsgHandler完成对数据流的操作,包括json格式判断、必备字段检查、成绩>=60筛选、json to Bean、合并Bean等操作

ConfigManager读取配置参数

conf.properties 配置信息

StreamingDemo是程序主函数

HBaseUtils Hbase工具类

StreamingDemoTest 测试类

3.2 主函数

初始化spark,和一些配置信息的读取,通过KafkaUtils.createDirectStream读取kafka数据。

 

技术图片

接下来完成如下几个操作:

清洗和筛选数据,返回(id,ScoreBean)的RDD

构造id List集合,批量从Hbase查询结果,构造(id,studentJsonStr)的resMap集合,方便后续O(1)查询

遍历每条数据,从resMap查到结果,合并出新的Java Bean

Java Bean to Json String,并写入到kafka

 

技术图片

4. 结果

开启kafka producer shell, 向kafka_streaming_topic写数据

开启kafka consumer shell, 消费hello_topic

5. 总结

通过这个小项目,希望大家可以掌握基本的Spark Streaming流处理操作,包括读写kafka,查询hbase,spark streaming Dstream操作。篇幅有限,全部代码就不一一列出了,完整代码在

Spark 项目实战企业级,源码深度剖析,机器学习,数据分析

标签:格式   源码   初始化   工具类   park   读取配置   imageview   检查   工具   

原文地址:https://www.cnblogs.com/spark88/p/11225820.html

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