Hadoop03:网站日志分析与MapReduce执行详解

一、回顾
-》hadoop
-》功能
-》解决大数据存储:hdfs
-》解决大数据计算:MapReduce
-》hadoop2
-》hdfs
-》特点
-》分布式:主从
namenode:主节点
-》存储元数据
-》接收处理用户请求
-》管理所有从节点
-》分块
-》副本
-》MapReduce v2
-》分布式计算模型
-》input
-》mapper
-》shuffle
-》reduce
-》output
-》yarn:分布式
-》resourcemanager:
-》资源管理
-》任务调度
-》管理从节点

-》MapReduce执行过程
hadoop hive spark
hive spark hbase


-》input:默认从hdfs读取数据:TextInputFormat
FileInputFormat
Path path = new Path(args[0]);
-》将每一行转换为一个keyvalue
-》输出:

<行的偏移量,行的内容>

key value
0 hadoop hive spark
30 hive spark hbase

-》mapper
-》输入:input的输出
longwritable ,Text
-》map:方法,一行调用一次map方法
-》设计输出,构造输出的keyvalue
-》对每一行内容进行分割
-》输出
key value
hadoop 1       1%2=1
hive 1 4%2=0
spark 1 11%2=1
hive 1
spark 1
hbase 1
-》shuffle:分区,分组,排序
输出:
hadoop <1>
hbase <1>
hive <1,1>
spark <1,1>
-》reduce:每一条keyvalue调用一次reduce方法
reduce:
将相同key的List,进行相加求和
输出:
hadoop 1
hbase 1
hive 2
spark 2
-》output
输出:默认将reduce的输出写入hdfs


三、MapReduce开发模板
-》Driver:
-》不继承不实现
-》继承及实现
extends Configured implements Tool

-》不继承只实现
implements Tool
-》Mapper
-》Reducer


四、自定义数据类型
-》要求keyvalue中包含多列
-》在map中
输出的key:自定义数据类型
输出的value:nullwritable
-》实现接口
-》Writable
-》write
-》readFields
-》WritableComparable
-》capareTo
-》其他方法
-》get and set
-》构造函数
-》toString
-》hashcode and equals

五、网站基于地域维度的PV及UV分析
-》PV:page view,访问页面的个数,重复访问累计
基于省份维度分析pv数:每个省份的pv数
pv:url

input:hdfs上文件
map
-》key:省份 Text
-》value:1
shuffle
输出:key:省份
value:<1,1,1,……>
reduce
-》reduce
输入:
key:省份
value:<1,1,1,……>
求和
-》输出
key:省份
value:pv数

output
key value
省份 pv数


-》表:PROVINCEId
select provinceid,count(url) as pv from weblog where url !='' group by provinceid order by pv asc/desc;




-》UV:unique view 唯一访问数,一个用户记一次
统计每个城市的UV数
map:
key:城市id Text
value:guid Text

Collections.sort(list):升序
sort(list,Comparator{
comparaTo(o1,o2){
o1 > o2 return -1
}
})
shuffle:
key:城市id
value:{uuid1,uuid1,uuid3……}
reduce:不同uuid的个数

select cityid,count(distinct uuid) as uvs from weblog group by cityid order by uvs desc limit 10;


六、设计MapReduce程序
-》map and redcue
-》map:分片处理
-》数据过滤
-》数据补全
-》字段格式化
对某个字段的处理
时间:dd/MMM/yyyy:HH:mm:ss

timestamp
1524398773987.389 秒
1524398773987389 毫秒
标准格式:yyyy-MM-dd HH:mm:ss
-》reduce:合并处理
-》合并
-》map



七、secondarynamenode
-》namenode启动过程
-》加载fsiamge中的内容到内存中
-》功能:辅助namenode同步本地元数据
fsimage(old)+ edits = fsimage(new)





你可能感兴趣的:(Hadoop03:网站日志分析与MapReduce执行详解)