26个数据分析案例——第四站:基于Flume与Kafka的web服务器日志数据采集

1 篇文章 0 订阅
1 篇文章 0 订阅

26个数据分析案例——第四站:基于Flume与Kafka的web服务器日志数据采集

实验环境

  • Python: Python 3.x;
  • Hadoop2.7.2环境;
  • Kafka_2.11;
  • Flume-1.9.0.

资料包

链接:https://pan.baidu.com/s/1oZcqAx0EIRF7Aj1xxm3WNw
提取码:kohe

实验步骤

第一步:安装并启动httpd服务器

[root@master ~]# yum -y install httpd
[root@master ~]# cd /var/www/html/
[root@master html]# vi index.html        #输入如下内容
Hello Flume
[root@master html]# service httpd start

通过浏览器访问结果为。代表启动成功。
在这里插入图片描述
查看是否有日志生成。

[root@master html]# cd /var/log/httpd/
[root@master httpd]#cat access_log

结果为。

在这里插入图片描述

第二步:配置Flume。

进入/usr/local/flume/conf目录,在该目录下创建名为access_log-HDFS.properties的配置文件。设置监控/var/log/httpd/目录下的access_log日志文件,并将内容通过9092端口发送至kafka。

[root@master httpd]# cd /usr/local/flume/conf/
[root@master conf]# vi access_log-HDFS.properties
#配置文件内容如下所示。
a1.sources = s1  
a1.sinks = k1
a1.channels = c1
  
# Describe/configure the source  
a1.sources.s1.type = exec
a1.sources.s1.command = tail -f /var/log/httpd/access_log
a1.sources.s1.channels=c1
a1.sources.s1.fileHeader = false
a1.sources.s1.interceptors = i1
a1.sources.s1.interceptors.i1.type = timestamp
  
#Kafka sink配置
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink  
a1.sinks.k1.topic = cmcc  
a1.sinks.k1.brokerList = master:9092  
a1.sinks.k1.requiredAcks = 1  
  
# Use a channel which buffers events in memory  
a1.channels.c1.type = memory  
a1.channels.c1.capacity = 1000  
a1.channels.c1.transactionCapacity = 100  

# Bind the source and sink to the channel  
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1

第三步:配置kafka

首先应确保zookeeper和kafka进程处于正常状态,若为关闭状态可使用以下命令启动。

[root@master ~]# /usr/local/zookeeper/bin/zkServer.sh start
[root@master ~]# cd /usr/local/kafka/bin/ 
[root@master bin]# ./kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

在这里插入图片描述

第四步:编写代码使用Python消费kafka数据

这里使用PyKafkafka模块实现,创建名为kafkacustomer.py文件,用于从9092端口消费kafka数据,消费数据时需要制定topic,代码如下。

[root@master ~]# vim kafkacustomer.py 
from pykafka import KafkaClient
client = KafkaClient(hosts="192.168.0.10:9092")
topic = client.topics['cmcc']             //指定从cmcc这个topic中消费数据
consumer = topic.get_simple_consumer(
    consumer_group="tpic",
    reset_offset_on_start=True
)
for message in consumer:              //遍历接收到的内容
    if message is not None:            //如果信息不为空
        print(message.offset, message.value)    //数据结果

第五步:启动项目

启动Flume根目录使用access_log-HDFS.properties配置文件启动数据采集,数据采集启动后会自动创建kafka的topic名为cmcc。

[root@master ~]# cd /usr/local/flume/
[root@master flume]# bin/flume-ng agent --name a1 --conf conf  --conf-file conf/access_log-HDFS.properties  -Dflume.root.logger=INFO,console

在这里插入图片描述
使用Python3运行kafkacustomer.py文件,每当页面刷新时,会实时产生日志文件,并且由flume采集到发送到kafka。

[root@master ~]python customerkafka.py

在这里插入图片描述

后续案例持续更新

01 基于Python的HBase冠字号查询系统
02基于Hive的民航客户价值分析
03 基于python的药店销售数据分析
04基于Flume与Kafka的web服务器日志数据采集
05 基于Scrapy的架构的数据采集
06 Linux操作系统实时日志采集并处理
07 医疗行业案例-中医病症辩证关联规则分析
08教育行业案例-高校学生生活数据分析
10 娱乐行业案例-广告收益回归预测模型
11网络行业案例-网站访问行为分析
12零售行业案例-店铺热门商品实时统计
13 营业额数据可视化
14金融行业案例-基于上市公司股票信息及其衍生变量的金融数据分析
15银行信用卡风险数据可视化
16 滴滴出行城市运营分析
17 幸福指数可视化
18 员工主动离职预警模型
19 歌手推荐模型
20 2020新冠肺炎疫情数据分析
21 淘宝购物狂欢节数据分析
22 共享单车数据分析
23人脸检测系统
24服装分拣系统
25口罩佩戴识别系统
26 imdb电影数据分析
20 2020新冠肺炎疫情数据分析
21 淘宝购物狂欢节数据分析
22 共享单车数据分析
23人脸检测系统
24服装分拣系统
25口罩佩戴识别系统
26 imdb电影数据分析

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值