第六章:期中大作业


文档摘要

第六章 期中大作业 边圣陶,王洲烽,蒋志政   本章节对前五章的内容掌握程度进行一个小小的测试,包括一些面向企业的面试题,和两道基础的实战编程题。学了理论知识这么久了,也该好好动动手喽,相信大作业的学习对小伙伴们有很大的提高!! 1 面试题 6.1.1 简述Hadoop小文件弊端 6.1.2 HDFS中DataNode挂掉如何处理? 6.1.3 HDFS中NameNode挂掉如何处理? 6.1.4 HBase读写流程? 6.1.5 MapReduce为什么一定要有Shuffle过程 6.1.6 MapReduce中的三次排序 6.1.7 MapReduce为什么不能产生过多小文件 6.2 实战 在此次作业中,你需要使用 MRJob 对在线社交网络的数据集进行数据分析。

第六章 期中大作业

边圣陶,王洲烽,蒋志政

  本章节对前五章的内容掌握程度进行一个小小的测试,包括一些面向企业的面试题,和两道基础的实战编程题。学了理论知识这么久了,也该好好动动手喽,相信大作业的学习对小伙伴们有很大的提高!!

6. 1 面试题

6.1.1 简述Hadoop小文件弊端

6.1.2 HDFS中DataNode挂掉如何处理?

6.1.3 HDFS中NameNode挂掉如何处理?

6.1.4 HBase读写流程?

6.1.5 MapReduce为什么一定要有Shuffle过程

6.1.6 MapReduce中的三次排序

6.1.7 MapReduce为什么不能产生过多小文件

6.2 实战

在此次作业中,你需要使用 MRJob 对在线社交网络的数据集进行数据分析。

6.2.1 数据集

数据集包含用户的签到历史,其中每条记录的格式为“ userID,locID,check_in_time”,其中 userID (字符串类型)是用户的 ID,locID (字符串类型)是位置的 ID,check _ in _ time (字符串类型)是用户在该位置签到的时间戳。示例文件如下:

u1,l1,t1 u1,l1,t2 u1,l2,t3 u2,l1,t4 u2,l3,t5 u3,l2,t6 u3,l2,t7 u3,l3,t8

6.2.2 作业详情

我们用 n_{\operatorname{loc}_i}^{u_j} 来表示 用户 u_{j} 在位置 loc_{i} 的签到次数,用 n_{u_{j}} 来表示用户 u_{j} 的签到总次数。因此,n_{u_j}= \sum_{l o c_i \in L_{u_j}} n_{l o c_i}^{u_j} ,其中 L_{u_{j}} 为 用户 u_{j} 签到过的位置的集合。

用户 u_{j} 在位置 loc_{i} 的签到概率为 prob_{l o c_i}^{u_j}=\frac{n_{l o c_i}^{u_j}}{n_{u_j}} 。您的任务是为每个用户计算该用户访问过的每个位置 的签到概率 prob_{l o c_i}^{u_j}

PS:解决方案源码填空示例与结果验证数据在\juicy-bigdata\experiments\06 期中大作业目录下

同时提前安装MRJobMRStep

6.2.3 输出格式

将结果存储在 HDFS 中,格式为"loc_i" \t "u_j,prob_{loc_i}^{u_j}"。结果首先按升序按位置 ID 排序,然后按降序按用户的签到概率排序。如果两个用户具有相同的概率,则按照他们的 ID 以升序排序。

示例文件结果输出如下:

"l1" "u1,0.6666666666666666" "l1" "u2,0.5" "l2" "u3,0.6666666666666666" "l2" "u1,0.3333333333333333" "l3" "u2,0.5" "l3" "u3,0.3333333333333333"

运行指令:python project.py -r hadoop <~/test_case/TKY_sample1000.csv > output

实战了第五章大内容,是不是感觉意犹未尽,放心吧,后边的内容更精彩!!!!!希望大家带着轻松愉快的态度去学习,积极面对困难,持久化学习!!!


作者与出处
原作者: Datawhale
来源:Datawhale
许可证:CC BY-NC-SA 4.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Datawhale 转发
评论区 (0)
U