hadoop综合实验(对日志的处理mapreduce保存到csv)
Posted 南师大蒜阿熏呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop综合实验(对日志的处理mapreduce保存到csv)相关的知识,希望对你有一定的参考价值。
综合实验:网站访问日志采集、处理及分析
实验步骤
注:截图必须使用实验机的带水印截图功能,题目中要求截图但未提供的视为未做
一、使用Flume导入日志数据
数据文件下载地址:
wget "http://10.90.3.2/files/web_log/xaa.log"
wget "http://10.90.3.2/files/web_log/xab.log"
wget "http://10.90.3.2/files/web_log/xac.log"
新建一个待监控的文件夹,放入三个日志文件我这里是lhx
1、(代码)创建flume配置,文件内容及部分属性注释(注意路径):
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 定义源: spooldir
a1.sources.r1.type = spooldir
# 指定监控目录(本地路径)
a1.sources.r1.spoolDir = /home/ubuntu/lhx
a1.sources.r1.decodeErrorPolicy = IGNORE
# Describe the sink(hdfs路径)
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/2015070214/
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.rollSize = 0
a1.sinks.k1.hdfs.rollCount = 0
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2、(截图)运行flume配置的命令(运行前需启动hadoop):
cd /opt/hadoop/sbin
hadoop namenode -format
./start-all.sh
3、(截图)日志导入到hdfs后,查看hdfs目录内容:
flume-ng agent -f /home/ubuntu/flume.conf -n a1
4、(截图)选取一个文件查看前几条内容:
hdfs -dfs -cat /flume/2015070214/ | head -10
二、使用MapReduce对日志数据进行预处理
1、(代码)map和reduce文件:
def tq():#方法一以及导入csv 建议pycharm使用
with open('test.csv', 'w', encoding='utf-8', newline="") as f:
for line in sys.stdin:
line = line.strip().replace('[','').replace(']','').replace('"','').replace('- - ','').replace(' -','-').replace(' ',',')
print(line)
f.write(line)
f.write('\\n')
tq()
#查看- 测试
#hdfs dfs -cat /flume/2015070214/* |wc -l
#直接执行
#hdfs dfs -cat /flume/2015070214/* | python map.py
def tq():#方法二,hdfs上传完成后,hdfs dfs -cat 路径 | > csv
for line in sys.stdin:
line = line.strip().replace('[','').replace(']','').replace('"','').replace('- - ','').replace(' -','-').replace(' ',',')
print(line)
tq()
2、(截图)用hadoop-streaming运行MapReduce的命令、及运行时的部分截图:
hdfs dfs -cat /flume/2015070214/* | python map.py
导入csv(方法二必看)
hdfs dfs -cat /flume/2015070214/* | python map.py | >test.csv
3、(截图)查看几条产出的数据记录截图:
以上是关于hadoop综合实验(对日志的处理mapreduce保存到csv)的主要内容,如果未能解决你的问题,请参考以下文章
hadoop之mapreduce编程实例(系统日志初步清洗过滤处理)