一、购物的日志长什么样?
日志中包括很多数据,我们今天只用到IP、帐号、访问的网址作为示例。在真实的项目中(如某宝),通过javascript的事件,可以将你在某个商品链接上停留的时间都采集记录一下来。这些日志通过flume脚本采集到HDFS中长期存储起来。
对于数据的进一步分析,如果大型的互联网厂商,会用mapreduce进行数据的定期分析。今天我们讲到,用hive数据仓库进行进行的快速分析呈现,您也可以。
二、如何实现快速分析
1、将HDFS中的数据导入至HIVE表中
我们手动创造待分析的log数据,如alissa喜欢服装,jeery喜欢汽车和游戏......
创造HIVE仓库表
将HDFS中的数据导入到HIVE中
2、HIVE的大数据分析能力体现在简单、易用
A、我们希望查到所有访客的访问网址次数。一条简单的SQL命令下发后,HIVE生成了mapreduce进行大数据的分析,在三台Yarn的节点上大约30秒钟后返回了结果。select name,count(*) from manlogdetail group by name;
alissa访问了2次,jerry访问了2次,john访问了1次。
B、我们希望查到所有访问对衣服品类的访问次数。
一条简单的SQL命令下发后,HIVE生成了mapreduce进行大数据的分析,在三台Yarn的节点上大约30秒钟后返回了结果。select name,count(name) from manlogdetail where url like "%clothes";
alissa访问了2次。
3、通过以上的分析,我们是否可以得出以下结果:
alissa 喜欢购物(上网次数频繁)
alissa 喜欢服装(访问时装最多)
三、HIVE的优势总结
1、适合大数据量的保存,作为数据仓库使用。
HIVE底层也基于HDFS,因此基于便宜的x86服务器可以进行数据的长期保存;也因为HDFS的默认三副本存储,数据的可靠性也得到有效保障。
2、适用于大数据量的分析。
传统分析大数据,基本需要写复杂的mapreduce框架代码,如果没有很好的java基础,是一个很大的挑战。而HIVE通过简单的SQL语句,经过解析器,即可自动生成jar包,启动数据分析。
但HIVE不适于用于实时的数据查询,因为每次查询都需要经过一次mapreduce操作,很费时间。我们将HIVE的数据分析结果一般放到HBase中进行保存,便用DataV等大数据显示控件进行数据的实时查询、展示。下一篇文件我们讲HBase如何对本文的HIVE输出数据进行保存。