基于hive的dip-data-analyze 重发

应公司要求,特别写了一个博客,提交给公司,这里也再重发下。


基于hiveserverDip-Data-Analyze

一、           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 请参考这里 :

        http://wiki.apache.org/hadoop/Hive

        官方主页在这里:

        http://hadoop.apache.org/hive/

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

        http://labs.renren.com/apache-mirror/hadoop/hive/hive-0.5.0/

二、Dip-Data-Analyze的诞生

 

进入公司以来,就专心研究下hadoop,hive,感觉hive让分析人员分析数据b变的极为方便,通过将日志转成表,像操作mysql的方式去统计数据,无疑是方便很多。但是也带来个问题:分析人员直接操作hive,需要分析人员对hive有比较深得了解 ,而且很多功能像udf之类需要频繁加载,效率低下;对于一些一天跑几次或者定期执行的任务,很多流行的做法是通过脚本加入cron,来调度,这样的结果是随着任务增多,对这些分析任务的管理就会非常复杂,因为管理人员不知道一个脚本具体负责什么,更无法跟踪这个任务做了什么,如果失败怎么恢复,任务结果如何管理等等。

正是基于以上的想法,才产生了dip-data-analyze

三、Dip-Data-Analyze的架构

技术架构:


可以看到dip-data-analyze是构建在hadoop\hive之上的系统。用户通过系统提供的界面可以创建分析任务(Job),这些Job有几种类型(暂时包含3种),可以帮助用户完成常见的分析任务。同时系统提供了计划的管理,通过将任务与计划融合,组成计划任务,用户的任务就可以按照计划去执行。

任务提交后由系统的调度系统根据计划调度执行,通过jobcache记录任务的实时状态,并可控制每秒并行任务的个数,以防并行任务过多,对hiveserver压力过大。

任务运行过程中,DataProcessor会产生jobtrace对象,跟踪记录每一个任务运行轨迹,并将jobtrace保存到数据库。Jobtable记录任务产生的表,并为后执行的任务提供数据源。DataProcessor负责从Jobtable获取需要的hive表给依赖于其他任务的任务。最后DataProcessor正确保存任务产生的数据。目前是存在hdfs,未来会支持存入mysqlhbase.

系统提供了友好的报警通知机制,用户既可以采用全局报警也可以对每个任务定义报警。

另外系统提供了非计划任务,支持用户执行一次性任务,并可以通过jobtrace进行重试操作.

四、业务逻辑

    Dip-data-analyze总体业务逻辑图

 

目前任务支持三种任务类型:LoadDataJobBase_AnalyzeTop_Analyze.

通过系统调度框架执行任务,任务通过系统中的支持并发的CentralJobExecution来执行job.执行过程产生的jobtablejobtrace及报警信息会及时保存或发送。

五、执行模式

 

目前任务执行模式大体分为3,如图所示.

六、系统演示

目前系统为beta版,已经试运行一段时间。

系统概况

计划任务:

共48个其中正在运行的42个已经停止 6个。
按类型统计,数据加载任务共 22个基础分析任务共 3个, TOP分析任务共 23个。

非计划任务:

共22个, 按类型统计,数据加载任务共 10个基础分析任务共 3个, TOP分析任务共 9个

系统截图:


任务监控中完成的任务列表:


如对系统有其他问题或建议,请发我邮箱

wangfeng4@staff.sina.com.cn或wfeng1982@163.com


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值