作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服

 

《实时分布式日志流处理》

案例指导书

 

 

 

 

 

 

 

 

 

课程名称   实时分布式日志流处理   

实验学时            5             

 

 

目录

一、案例概述 3

1.1案例目的 3

1.2案例工具 3

1.3架构图 4

二、IDEA使用 4

2.1启动idea 4

2.2 创建或导入maven项目 5

2.3 配置mavenjdk环境 8

2.4 配置scala 10

三、所需环境启动 12

3.1启动zookeeper 12

3.2启动kafka,并创建topic 12

3.3启动spark集群 13

3.4启动redis 13

四、代码运行步骤 14

4.1spark-submit提交运行Producer 15

4.2spark-submit提交运行UserClickAnalyze 15

五、R语言处理分析图 16

5.1引入redis库,建立连接 17

5.2切换到redis数据库 17

5.3读取对象 17

5.6画图 18

1.设置参数 18

2.绘图 19

3.保存本地 20

4.查看图片 21

六、实验源码 22

6.1用户点击次数Producer.scala 22

6.2连接redis的客户端RedisClient.scala 23

6.3用户点击次数分析 UserClickAnalyze.scala 24

6.4 pom.xml 26


 

一、案例概述

1.本案例将在Linux环境下实现模拟对日志流进行实时处理。

2.案例涉及数据的预处理、数据的存储、数据查看、代码编写和大数据结果展现等全流程所涉及的各种典型操作,涵 LinuxRedisHadoopKafkaSparkIdeaR语言 等系统和软件的安装和使用方法。

3.本案例适合高校大数据教学,可以作为大数据实训课程的 综合实践案例。

4.通过本案例,将有助于读者综合运用大数据课程知识以及 各种工具软件,实现数据全流程操作。

1.1案例目的

1.掌握Redis的使用方法

2.掌握Kafka的使用方法

3.掌握IntelliJ IDEA编写Scala程序的方法

4.掌握编写Spark程序的方法

5.掌握编写SparkStreamingkafka集成的方法

6.掌握利用R语言进行可视化的方法

1.2案例工具

虚拟机数量:1

操作系统:Ubuntu 16.04

HadoopHadoop 2.7.5

Sparkspark 2.30

Kafkakafka 2.11-1.1.0

IDEA:intellij IDEA 2018.3

R:R 3.4.4

Redis:redis 4.0.2

1.3架构图

image.png

二、IDEA使用

2.1启动idea

按照以下步骤进行启动idea

image.png

image.png

选择免费试用30的,可以帮助我们完成我们的实验。建议大家还是支持正版。

image.png

2.2导入maven项目

因为已经提供了源码,所以直接打开的话:

image.png

image.png

然后进入后刷新maven,等待

image.png

2.3 配置maven和jdk环境

image.png

image.png

没有jdk的话

image.png

点击下面的按钮,然后去配置maven

image.png

image.png

2.4 配置scala

image.png

image.png

等待下载安装完成后然后重启idea。

image.png

image.png

image.png

image.png

然后一直点ok就好了

三、所需环境启动

环境都已经装好,如果不熟悉,请从基础开始学习。

3.1启动zookeeper

#>zkServer.sh start

image.png

3.2启动kafka,并创建topic

#>cd /apps/kafka

#>nohup bin/kafka-server-start.sh config/server.properties &

image.png

创建topicuser_events

#>kafka-topics.sh --create --zookeeper Qi-Tech:2181 --replication-factor 1 --partitions 1 --topic user_events

#> kafka-topics.sh --list --zookeeper Qi-Tech:2181 --topic user_events

image.png

topic进行生产消费测试

#> kafka-console-producer.sh --broker-list Qi-Tech:9092 --topic user_events

#> kafka-console-consumer.sh --zookeeper Qi-Tech:2181 --topic user_events

image.png

3.3启动spark集群

#>/apps/spark/sbin/start-all.sh

image.png

3.4启动redis

#>cd /apps/redis

#>redis-server redis.conf

image.png

四、代码运行步骤

首先,在idea中进行打包

image.png

打完会出现下面的文件夹

image.png

这个时候jar包所在路径为:

/apps/idea-workspace/Case7/target

 

 

这里要注意:

因为kafka消费设置的是从最新生产的开始消费,所以这里提交运行生产者Producer要先打开一个终端运行起来,然后再打开另外一个终端运行UserClickAnalyze。运行的先后顺序最好与下方保证一致。

4.1spark-submit提交运行Producer

这里/root/package里面是idea中的maven下载的所需要的包,要不然提交运行会找不到包,这里已经提供好了。

#>spark-submit --driver-class-path /root/package/*:/apps/spark/jars/*:/apps/kafka/libs/*  --master spark://Qi-Tech:8088 --class Producer --executor-memory 500m /apps/idea-workspace/Case7/target/Case7.jar

image.png

4.2spark-submit提交运行UserClickAnalyze

#> spark-submit --driver-class-path /root/package/*:/apps/spark/jars/*:/apps/kafka/libs/*  --master spark://Qi-Tech:8088 --class UserClickAnalyze --executor-memory 500m /apps/idea-workspace/Case7/target/Case7.jar

image.png

运行大约两分钟左右,就可以Ctrl+C停掉了。

五、R语言处理分析图

进入R

#>R

image.png

这里R里面所需要的库依赖,在R教学里面已经安装好了,这里可以直接拿来用。

5.1引入redis库,建立连接

>library(rredis)

>conn = redisConnect(host="Qi-Tech",port=6379)

image.png

可能遇见这样的错误

image.png

不过多执行两次就好了

5.2切换到redis数据库

>redisSelect(1)

image.png

列出所有的keys

>redisKeys()

image.png

显示有多少个key

>redisDBSize()

image.png

5.3读取对象

>data = redisHGetAll('users::click')

>data

image.png

>mode(data)

显示的是list

5.6画图

1.设置参数

先对data进行格式转换

>d=t(data)

>d

image.png

设置变量

>xname='user_name'

>yname='click_name'

>titlename='Analyze Drawing'

 

2.绘图

柱状图

>barplot(d,main=titlename,xlab=xname,ylab=yname,border='blue',ylim=c(0,80),col="yellow",legend=c('COUNT'))

执行完会弹出来:

image.png

条形图

>barplot(d,main=titlename,xlab=xname,ylab=yname,border='blue',ylim=c(0,80),col="yellow",legend=c('COUNT'))

>box()

image.png

3.保存本地

在执行第二步绘图之前,执行

>jpeg(filname='result.jpg',width=600,height=600,units='px')

然后执行绘图,完成后执行下一步

>dev.off()

image.png

4.查看图片

图片保存的位置在进入R客户端之前所在的目录下

我的之前在桌面

image.png

双击打开,结果如下图所示。

image.png

如果不是在桌面进入的,那么点击桌面主文件夹

image.png

进入找到图片所在位置,然后双击打开


Home