使用hadoop平台进行小型网站日志分析
0.上传日志文件到linux中,通过flume将文件收集到hdfs中。
执行命令/home/cloud/flume/bin/flume-ng agent -n a4 -c conf -f /home/cloud/flume/conf/a4.conf -Dflume.root.logger=DEBUG,console
1.建立hive表
create external table bbslog (ip string,logtime string,url string) partitioned by (logdate string) row format delimited fields terminated by '\t' location '/cleaned';
2.创建shell脚本
touch daily.sh
添加执行权限
chmod +x daily.sh
daily.sh:
CURRENT=`date +%Y%m%d`
#对数据进行清理,保存到cleaned文件夹,按照当前日期进行保存
/home/cloud/hadoop/bin/hadoop jar /home/cloud/cleaner.jar /flume/$CURRENT /cleaned/$CURRENT
#修改hive表,添加当前日期的分区
/home/cloud/hive/bin/hive -e "alter table bbslog add partition (logdate=$CURRENT) location 'cleaned/$CURRENT'"
#使用hive进行分析,根据业务需求而定
#统计pv并计入每日的pv表
/home/cloud/hive/bin/hive -e "create table pv_$CURRENT row format delimited fields terminated by '\t' as select count(*) from bbslog where logdate=$CURRENT;"
#统计点击次数过20的潜在用户
/home/cloud/hive/bin/hive -e "create table vip _$CURRENT row format delimited fields terminated by '\t' as select $CURRENT,ip,count(*) as hits from bbslog where logdate=$CURRENT group by ip having hits > 20 order by hits desc"
#查询uv
/home/cloud/hive/bin/hive -e "create table uv_$CURRENT row format delimited fields terminated by '\t' as select count(distinct ip) from bbslog where logdate=$CURRENT"
#查询每天的注册人数
/home/cloud/hive/bin/hive -e "create table reg_$CURRENT row format delimited fields terminated by '\t' as select count(*) from bbslog where logdate=$CURRENT AND instr(url,'member.php?mod=register')>0"
#将hive表中的数据导入mysql
/home/cloud/sqoop/bin/sqoop export --connect jdbc:mysql://cloud3:3306/jchubby --username root --password JChubby123 --export-dir "/user/hive/warehouse/vip_$CURRENT" --table vip --fields-terminated-by '\t'

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
flume分布式日志收集系统操作
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/44681127 1.flume是分布式的日志收集系统,把收集来的数据传送到目的地去。 2.flume里面有个核心概念,叫做agent。agent是一个java进程,运行在日志收集节点。 3.agent里面包含3个核心组件:source、channel、sink。 3.1 source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec 、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。 source组件把数据收集来以后,临时存放在channel中。 3.2 channel组件是在agent中专用于临时存储数据的,可以存放在memory、jdbc、file、自定义。 channel中的数据只有在sink发送成功之后才会被删除。 3.3 sink组件是用于把数据发送到目的地的组件,目的地包...
- 下一篇
Hadoop学习之ZooKeeper理论知识和集群安装配置
ZooKeeper集群安装配置和理论知识 1.简介:zookeeper是Google的Chubby的一个开源实现,是hadoop的分布式协调服务 2.Zookeeper(简称zk)包含一个简单的原语集,分布式应用程序可以给予它实现同步服务,配置维护和命名服务等 3.Zk的设计目标 a)简单化:通过共享体系的,命名空间进行协调,与文件系统相似,有一些数据寄存器组成,被称为Znode。Zk的数据是放在内存中的,zk可以达到高吞吐量、低延迟。 Zk能用在大型、分布式的系统。 严格的序列访问控制意味者复杂的控制源可以用在客户端上。 b)健壮性:zk互相知道其他服务器存在。维护一个处于内存中的状态镜像,以及一个位于存储器中的交换日志和快照。只要大部分服务器可用,zk服务就可用。 c)有序性:zk为每次更新赋予一个版本号,全局有序。 d)速度优势:读主要负载时尤其快,当读操作比写操作多时,性能会更好。 e)Zk还有原子性、单系统镜像、可靠性和实效性特点。 4.Zk可以用来保证数据在zk集群之间的数据的事务性的一致 (一般数据在2M以下) 5.如何搭建zk集群 a)前提: i. Zk服务器集群规模不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题