hive读取mysql日志_基于hive的日志分析系统

hive简介

hive是一个基于hadoop的开源数据仓库工具,用于存储和处理海量结构化数据。它把海量数据存储于hadoop文件系统,而不是数据库,但提供了一套类数据库的数据存储和处理机制,并采用HQL(类SQL)语言对这些数据进行自动化管理和处理。我们可以把hive中海量结构化数据看成一个个的表,而实际上这些数据是分布式存储在HDFS中的。Hive经过对语句进行解析和转换,最终生成一系列基于hadoop的map/reduce任务,通过执行这些任务完成数据处理。

Hive诞生于facebook的日志分析需求,面对海量的结构化数据,hive以较低的成本完成了以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活而高效。

Hive自2009.4.29发布第一个官方稳定版0.3.0至今,不过一年的时间,正在慢慢完善,网上能找到的相关资料相当少,尤其中文资料更少,本文结合业务对hive的应用做了一些探索,并把这些经验做一个总结,所谓前车之鉴,希望读者能少走一些弯路。

Hive的官方wiki请参考这里:

官方主页在这里:

hive-0.5.0源码包和二进制发布包的下载地址

二、部署

由于Hive是基于hadoop的工具,所以hive的部署需要一个正常运行的hadoop环境。以下介绍hive的简单部署和应用。

部署环境:

操作系统:Red Hat Enterprise Linux AS release 4 (Nahant Update 7)

Hadoop:hadoop-0.20.2,正常运行

部署步骤如下:

1、下载最新版本发布包,传到hadoop的namenode节点上,解压得到hive目录。假设路径为:/opt/hadoop/hive-0.5.0-bin

2、设置环境变量HIVE_HOME,指向hive根目录/opt/hadoop/hive-0.5.0-bin。由于hadoop已运行,检查环境变量JAVA_HOME和HADOOP_HOME是否正确有效。

3、切换到$HIVE_HOME目录,hive配置默认即可,运行bin/hive即可启动hive,如果正常启动,将会出现“hive>”提示符。

4、在命令提示符中输入“show tables;”,如果正常运行,说明已部署成功,可供使用。

常见问题:

1、执行“show tables;”命令提示“FAILED: Error in metadata: java.lang.IllegalArgumentException: URI:  does not have a scheme”,这是由于hive找不到存放元数据库的数据库而导致的,修改conf/hive-default.xml配置文件中的hive.metastore.local为true即可。由于hive把结构化数据的元数据信息放在第三方数据库,此处设置为true,hive将在本地创建derby数据库用于存放元数据。当然如果有需要也可以采用mysql等第三方数据库存放元数据,不过这时hive.metastore.local的配置值应为false。

2、如果你已有一套nutch1.0系统正在跑,而你不想单独再去部署一套hadoop环境,你可以直接使用nutch1.0自带的hadoop环境,但这样的部署会导致hive不能正常运行,提示找不到某些方法。这是由于nutch1.0使用了commons-lang-2.1.jar这个包,而hive需要的是commons-lang-2.4.jar,下载一个2.4版本的包替换掉2.1即可,nutch和hive都能正常运行。

三、应用场景

本文主要讲述使用hive的实践,业务不是关键,简要介绍业务场景,本次的任务是对搜索日志数据进行统计分析。

集团搜索刚上线不久,日志量并不大。这些日志分布在5台前端机,按小时保存,并以小时为周期定时将上一小时产生的数据同步到日志分析机,统计数据要求按小时更新。这些统计项,包括关键词搜索量pv,类别访问量,每秒访问量tps等等。

基于hive,我们将这些数据按天为单位建表,每天一个表,后台脚本根据时间戳将每小时同步过来的5台前端机的日志数据合并成一个日志文件,导入hive系统,每小时同步的日志数据被追加到当天数据表中,导入完成后,当天各项统计项将被重新计算并输出统计结果。

以上需求若直接基于hadoop开发,需要自行管理数据,针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值