《实时分布式日志流处理》
案例指导书
课程名称 实时分布式日志流处理
实验学时 5
4.1spark-submit提交运行Producer 15
4.2spark-submit提交运行UserClickAnalyze 15
6.2连接redis的客户端RedisClient.scala 23
6.3用户点击次数分析 UserClickAnalyze.scala 24
一、案例概述
1.本案例将在Linux环境下实现模拟对日志流进行实时处理。
2.案例涉及数据的预处理、数据的存储、数据查看、代码编写和大数据结果展现等全流程所涉及的各种典型操作,涵 盖Linux、Redis、Hadoop、Kafka、Spark、Idea、R语言 等系统和软件的安装和使用方法。
3.本案例适合高校大数据教学,可以作为大数据实训课程的 综合实践案例。
4.通过本案例,将有助于读者综合运用大数据课程知识以及 各种工具软件,实现数据全流程操作。
1.1案例目的
1.掌握Redis的使用方法
2.掌握Kafka的使用方法
3.掌握IntelliJ IDEA编写Scala程序的方法
4.掌握编写Spark程序的方法
5.掌握编写SparkStreaming和kafka集成的方法
6.掌握利用R语言进行可视化的方法
1.2案例工具
虚拟机数量:1台
操作系统:Ubuntu 16.04
Hadoop:Hadoop 2.7.5
Spark:spark 2.30
Kafka:kafka 2.11-1.1.0
IDEA:intellij IDEA 2018.3
R:R 3.4.4
Redis:redis 4.0.2
1.3架构图
二、IDEA使用
2.1启动idea
按照以下步骤进行启动idea
选择免费试用30的,可以帮助我们完成我们的实验。建议大家还是支持正版。
2.2导入maven项目
因为已经提供了源码,所以直接打开的话:
然后进入后刷新maven,等待
2.3 配置maven和jdk环境
没有jdk的话
点击下面的按钮,然后去配置maven
2.4 配置scala
等待下载安装完成后然后重启idea。
然后一直点ok就好了
三、所需环境启动
环境都已经装好,如果不熟悉,请从基础开始学习。
3.1启动zookeeper
#>zkServer.sh start
3.2启动kafka,并创建topic
#>cd /apps/kafka
#>nohup bin/kafka-server-start.sh config/server.properties &
创建topic为user_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
对topic进行生产消费测试
#> kafka-console-producer.sh --broker-list Qi-Tech:9092 --topic user_events
#> kafka-console-consumer.sh --zookeeper Qi-Tech:2181 --topic user_events
3.3启动spark集群
#>/apps/spark/sbin/start-all.sh
3.4启动redis
#>cd /apps/redis
#>redis-server redis.conf
四、代码运行步骤
首先,在idea中进行打包
打完会出现下面的文件夹
这个时候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
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
运行大约两分钟左右,就可以Ctrl+C停掉了。
五、R语言处理分析图
进入R
#>R
这里R里面所需要的库依赖,在R教学里面已经安装好了,这里可以直接拿来用。
5.1引入redis库,建立连接
>library(rredis)
>conn = redisConnect(host="Qi-Tech",port=6379)
可能遇见这样的错误
不过多执行两次就好了
5.2切换到redis数据库
>redisSelect(1)
列出所有的keys
>redisKeys()
显示有多少个key
>redisDBSize()
5.3读取对象
>data = redisHGetAll('users::click')
>data
>mode(data)
显示的是list
5.6画图
1.设置参数
先对data进行格式转换
>d=t(data)
>d
设置变量
>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'))
执行完会弹出来:
条形图
>barplot(d,main=titlename,xlab=xname,ylab=yname,border='blue',ylim=c(0,80),col="yellow",legend=c('COUNT'))
>box()
3.保存本地
在执行第二步绘图之前,执行
>jpeg(filname='result.jpg',width=600,height=600,units='px')
然后执行绘图,完成后执行下一步
>dev.off()
4.查看图片
图片保存的位置在进入R客户端之前所在的目录下
我的之前在桌面
双击打开,结果如下图所示。
如果不是在桌面进入的,那么点击桌面主文件夹
进入找到图片所在位置,然后双击打开