基于hadoop集群的人大经济论坛日志分析
演讲嘉宾:曹正凤
速记整理:成石
各位大数据爱好者,大家上午好。我给大家分享一下我们使用Hadoop集群进行大数据的日志分析。对于大数据的概念大家应该都很了解。大数据时代,大数据的思维特征应该都很了解,那么日志在这个里面很符合大数据的特征。所以一般来说,我们在做这种大数据的处理的时候,一般在这个地方部署还是比较合适的。前面刚才两位专家讲的都比较宏观,到这我就比较具体,具体到一个就是我们在做课程培训的时候具体的一个课程的内容。
首先请允许我做一个自我介绍,我在经管之家主要做大数据人才的培训,因为大家知道刚才我们讲了很多大数据,现在中国最缺的就是大数据人才。而我们很多高校纷纷成立大数据研究院,等他们培养出人才已经3,4年以后了,在这个中间,人才脱节还是很严重的。我们也发现了这个问题,所以我们开始在从2014年开始进行这种大数据的培训,我是这个课程培训的负责人。再给大家分享一个信息,我在去年写了一本书叫《从0进阶数据分析基础》。一年之间销售近万册,并进入百度百科。我想跟大家讲的是不是说我这本书写的有多好,这个时代,大数据分析时代的到来,趁着我们国家大数据的东风,数据分析也整个铺开了。因为以前企业的日子是很好过的,不需要分析,我们企业的老总只需要说今年一千万明年两千万就可以了。但现在不行,经济开始下滑,企业需要了解我的客户,了解我的产品,这个时候就要开始进行数据分析了,这也是我经常跟我们学员说的一个事情,现在进入我们这个行业是最好的一个行业。在去年还翻译了一本书叫《智能大数据smart准则》讲的是小数据企业在大数据时代怎么做?简单的说我们零售企业如何应用大数据的思想技术来进行为我服务?比如说一个商品零售企业,想知道有多少顾客经过我这个店,有多少人进入我这个店。在传统小数据时代,可能就就是我坐在门口数数,或者做个抽样调查。到大数据的时候,我们不像互联网公司那样拥有大量的数据,我们可以改变一个数据采集的方式,比如说在门口安装一个手机感应器,现在的人都会带手机,经过我这个店,我就可以捕捉出来,我就可以精确的知道有多少人经过我这个店,并有多少人进入我这个小店。这是这个书的一些信息。我给大家分享的就是微观一点的日志管理。日志管理大家比较熟悉,我们要知道这个用户在什么时间,使用什么操作系统,使用什么浏览器,也就是我们客户行为,也就是这个行为,我们可以进行精准营销。以前日志也分析,但是不想大数据这样运行速度这么快,这么实时去做。做日志管理的有百度,谷歌,站长之家,做的还不错。百度做的每天的PV数,IP数等等。我们一会要跟大家分享我们是怎么用hadoop集群做出来的。每天有有两万多人,现在4,5天就拿到了30G的数据,几年的话这个数据量是特别大。如何把用户行为分析出来,用传统工具也能解决,但是需要1天或2天才能把结果映射出来。用大数据几分钟就搞定了。这是这个论坛的日志格式ip地址,访问时间,请求资源,从哪些界面访问过去的,标志符,日期啊,请求啊。相对来说是半结构化的特征,不像结构化数据库。但是这里面有很多信息,我都可以知道。进行分析,第一个是访问量,用户点击页面打开的次数,数据清洗,使用探针,把一些图片直接过滤掉。可以使用程序来判断是不是爬虫,有时在日志里会显示当前是什么样的爬虫在访问我的页面,都可以观察的到。IP访问的就是独立IP,要有一个数据去重的工作,把重复IP去掉。访问时长,时间维度。浏览器类型。整个我们的体系架构是根据探针采集的数据,每隔两天将数据上传到我们的Hadoop集群上。然后编写map/reduce程序,把这些数据放到mysql数据库里面。每天通过定时放到Hadoop集群,hadoop集群生成PV,IP和浏览器数据,更深入可以做页面行为。最后放到Mysql数据库里,生成百度那张图,每个时间点多少用户访问了我这个网站。
项目实施我们从需求分析开始,每天我们将日志文件上传到我们集群,计算出PV,IP和浏览器类型,使用map/reduce程序来实现,最后写到MySQL数据库里,使用的工具eclipse加上hadoop集群,现在做的是六台服务器,使用MySQL数据库等等。这是在eclipse新建map/reduce项目然后把MySQL这个包加进来。这是对应的java代码,第一个是做数据过滤数据清洗的,这是算浏览器的,这是进行IP地址计算的,这是进行PV浏览的,这是写数据库的,这是这几个java文件,在这里只是跟大家分享一下map/reduce程序到底是什么样子。我们很多朋友都在说大数据,大数据最核心的map/reduce程序到底是怎么写的,其实很简单,固定模式,一个map,中间是我们自己写的,根据我们需求过滤出PV格式,然后进行计数。出现一个PV就记为1,以key-value对的形式出现。最后返回的时候也是这么写这是map,这是reduce,这是输入,这是输出,都是key-value对的形式。主函数中就定义map函数是什么,reduce函数是什么这个写起来就相对特别简单了。我们课程中有的学生不是学计算机的,最终也能写出来。由于时间的关系,更多的代码不一一讲了。
下面看一下项目运行的情况,这是我刚取得的一个数据,取了最近四天的数据,在集群里面上传大概26个G的样子。将项目写好以后打包成jar文件,在Hadoop中一般用java来做。执行的过程及就是一点点的map和reduce过程。这是最后吞吐量的情况,执行时间大概是1分25秒,26G的数据用一分钟分析出来,用数据库跑大概需要一天的时间。我们可以查看集群,集群里面跑了三个Map/reduce程序,然后这是整个集群的内存大小还有硬盘大小等等情况。总共map平均时间是15秒,一个map是一个数据块,一个数据块是128M,128M在15秒内运行完。2号机器执行的这个,然后看每个map里面执行的情况,六台机器一个主服务器,5台机器都创立了这个map的过程,每个大概执行15秒的样子,这是典型的分布式集群的运行方式,以上我这次要跟大家分享的内容。本文相关音频下载请点击【查看】。
-
本文版权由CHINA HADOOP大数据资讯网与演讲者共同拥有,转载请保留原文来源链接及公众号信息,违者必究。
-
China HADOOP Summit 2016 上海站将于7月29日30日在上海市召开,现向业界召集演讲。有兴趣的朋友请联系我们。
-
大数据生态系统 大数据安全;存储;YARN;HDFS命名空间等;
-
大数据与工业4.0 电力、电网、能源、炼钢等;
-
大数据与电子商务 国内互联网主流电商企业应用与架构分享
-
金融大数据 银行、证券、个人征信、企业征信、量化投资与大数据
-
智慧城市与大数据 交通、医疗、安防、税务工商、旅游等
-
计算引擎与实时计算 Spark、Tez、Impala、Flink、Google Mesa、 Storm、Fafka等
-
大数据即服务 Azure、AWS、阿里云、Docker/Container、Mesos等
-
NewSQL/NoSQL ·HBase/Druid;MongoDB/CouchDB;VoltDB;SequaioDB;Hana等
-
数据挖掘与图计算 R语言、GraphLab、GraphX、OrientDB等
-
数据仓库与可视化 EBay Kylin、LinkedIn Cubert、QlikView、Tableaue等
-
大数据创业与融投资 分享大数据领域的创业团队和故事