项目要求
根据电商日志文件,分析:
-
统计页面浏览量(每行记录就是一次浏览)
-
统计各个省份的浏览量 (需要解析IP)
-
日志的ETL操作(ETL:数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程)
为什么要ETL:没有必要解析出所有数据,只需要解析出有价值的字段即可。本项目中需要解析出:ip、url、pageId(topicId对应的页面Id)、country、province、city
技术
Hadoop、Idea、MapReduce
问题分析
问题1
Map阶段,对于每一条数据,设置一个默认键(只用于标记该行),值设置为1。Reduce阶段,获得所有的值的和即可。
问题2
我们需要提取每一条数据中的ip,在Map阶段使用ip解析的工具类,将每个ip对应到所属省份,将未知ip设置为默认值,得到的省份作为键,值设置为1。Reduce阶段合并相同的键并将对应值求和。
问题3
这里我们需要提取每一条数据中的ip、url、pageId、contry、province、city字段。其中ip、url 和 pageId可以直接通过字符串的处理得到。contry、province 和 city 通过定义的工具类进行处理后得到。