博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark之搜狗日志查询实战
阅读量:4500 次
发布时间:2019-06-08

本文共 1808 字,大约阅读时间需要 6 分钟。

1、下载搜狗日志文件:

地址:http://www.sogou.com/labs/resource/chkreg.php

2、利用WinSCP等工具将文件上传至集群。

3、创建文件夹,存放数据:

mkdir /home/usr/hadoopdata

4、将搜狗日志数据移到(mv命令)3中创建的目录下,并解压

tar -zxvf SogouQ.mini.tar.gz

5、查看解压后文件格式

file SogouQ.sample

显示:

不是UTF-8,用head/cat命名查看,中文乱码(影响后续进程),需对文件格式进行转换:

iconv -f gb2312 SogouQ.sample -o SogouQ.sample2

再次查看即可正常显示中文。

6、启动集群(Hadoop、spark)。启动后,进入hadoop安装目录下,在hdfs上新建存放数据的目录,并将5中已进行格式转换后的日志文件放到hdfs上,再查看文件是否上传成功,命令如下:

cd /home/usr/hadoop/hadoop-2.8.2hadoop fs -mkdir /sogouminihadoop fs -put /home/chenjj/hadoopdata/testdata/SogouQ.sample2 /sogouminihadoop fs -ls /sogoumini/SogouQ.sample2

结果:

7、进入spark安装目录下bin,启动spark-shell,由于本集群采用yarn模式部署的,故启动时选取yarn,其他参数可自行配置。

cd spark/spark-2.1.1-bin-hadoop2.6/bin./spark-shell --master yarn --executor-memory 2g --driver-memory 2g

8、进入spark-shell后,执行以下操作,在每句后面有说明

val path="hdfs:///sogoumini/SogouQ.sample2"——声明路径val sogouminirdd=sc.textFile(path)——读取hdfs上搜狗日志文件sogouminirdd.count()——查看文件总共多少条记录val mapsogouminirdd=sogouminirdd.map(_.split("\\s")).filter(_.length==6)——筛选出格式正确的数据mapsogouminirdd.count()——查看格式正确的有多少条,是否所有数据均正确val firstmapsogouminirdd=mapsogouminirdd.filter(_(3).toInt==1).filter(_(4).toInt==1)——筛选出当日搜索结果排名第一同时点击结果排名也是第一的数据量firstmapsogouminirdd.count()——查看结果是第多少条数据

注:(1) 元数据文件格式和官网描述不一致问题,官方说明排名和用户点击的顺序号之间是以Tab键分隔的,而实际是以空格分隔。

                 解决方法: spark分词时用split("\\s")代替split("\t"))。

9、使用toDebugString查看RDD血统(lineage)

firstmapsogouminirdd.toDebugString

结果如下:

可见其血统关系是:HadoopRDD->MappedRDD->MappedRDD->FilteredRDD->FilteredRDD->FilteredRDD。

10、用户ID查询次数排行榜:

val sortrdd=mapsogouminirdd.map(x=>(x(1),1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)) sortrdd.count()

11、将结果存放在hdfs中:

val outputpath="hdfs:///sogoumini/SogouQresult.txt"——存放路径及文件名sortrdd.saveAsTextFile(outputpath)——存结果

 

转载于:https://www.cnblogs.com/pengpp/p/8081373.html

你可能感兴趣的文章
Android RenderScript 使用 Struct 及其下标的赋值
查看>>
【题解】BZOJ P1801 dp
查看>>
杂项-软件生命周期:软件生命周期
查看>>
小程序:小程序能力
查看>>
P1578 奶牛浴场 有障碍点的最大子矩形
查看>>
OpenCV学习:体验ImageWatch
查看>>
socket_循环接收消息
查看>>
I/O基础之概念
查看>>
各种算法的优缺点:
查看>>
poj 2513 Colored Sticks 字典树
查看>>
BZOJ 1266: [AHOI2006]上学路线route Floyd_最小割
查看>>
Softmax函数
查看>>
.NET 向SQL里写入非Text类型
查看>>
HAOI2006 受欢迎的牛
查看>>
【代码备份】pocs.m
查看>>
(转)ApplicationDomain
查看>>
form注册表单圆角 demo
查看>>
python 学习之 函数参数和内置函数
查看>>
leetcode 1108
查看>>
PHP底层的运行机制与原理
查看>>