#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie

标签: 数据 技术 shib | 发表时间:2014-12-22 13:25 | 作者:
出处:http://www.iteye.com
郑昀 创建于2014/10/30 最后更新于2014/10/31
 
一)选型:Shib+Presto
应用场景:即席查询(Ad-hoc Query)
1.1.即席查询的目标
使用者是产品/运营/销售运营的数据分析师;
要求数据分析师掌握查询SQL查询脚本编写技巧,掌握不同业务的数据存储在不同的数据集市里;
不管他们的计算任务是提交给 数据库 还是 Hadoop,计算时间都可能会很长,不可能在线等待;
所以,
使用者提交了一个计算任务(PIG/SQL/Hive SQL),控制台告知任务已排队,给出大致的计算时间等友情提示, 这些作业的权重较低,
使用者和管理员可以查看排队中的计算任务,包括已执行任务的执行时间、运行时长和运行结果;
当计算任务有结果后,控制台界面有通知提示,或者发邮件提示,使用者可以在线查看和下载数据。
 
1.2.即席查询的当下技术选型
图形交互界面:Shib;
数据查询引擎:Facebook Presto。
 
1.3.为什么要更换数据查询引擎?
  基于 MapReduce 的 Hadoop 适合数据批处理,但不适合即席查询场景。基于 InnoDB/MyISAM 存储引擎的 MySQL 自然也不适合。当然我们也观察过 InfiniDB/InfoBright 这种列式存储数据库引擎(仍基于MySQL),它们更适合基本不再变更的历史 归档数据,所以不太适合电商应用场景。
  我们的鹰眼(Tracing)项目就曾折翼在即时查询上,后端的 HBase 扛不住在大数据量下的实时插入和查询。
 
  『Hive 更适合于长时间的批处理查询分析,Impala、Shark、Stinger和Presto 适用于实时交互式SQL查询,它们给数据分析师提供了快速实验、验证想法的大数据分析工具。所以可以先使用 Hive 进行数据转换处理,之后使用这四个系统中的一个在 Hive 处理后的结果数据集上进行快速的数据分析。
  Impala、Shark、Stinger和Presto四个系统都是类SQL实时大数据查询分析引擎,但是它们的技术侧重点完全不同。而且 它们也不是为了替换Hive而生,Hive 在做数据仓库时是非常有价值的。这四个系统与Hive都是构建在Hadoop之上的数据查询工具,各有不同的侧重适应 面,但从客户端使用来看它们与Hive有很多的共同之处,如数据表元数据、Thrift接口、ODBC/JDBC驱动、SQL语法、灵活的文件格式、存储 资源池等。』——《开源大数据查询分析引擎现状,2014》
  最终我们选择了 Presto。
 
  FaceBook于2013年11月份开源了Presto,一个分布式SQL查询引擎,它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window functions)。Presto设计了一个简单的数据存储的抽象层,来满足在不同数据存储系统(包括HBase、HDFS、Scribe等)之上都可以使用SQL进行查询。

  Presto 简化的架构如下图1所示,客户端将 SQL 查询发送到 Presto 的协调器。协调器会进行语法检查、分析和规划查询计划。调度器将执行的管道组合在一起,将任务分配给那些离数据最近的节点,然后监控执行过程。客户端从输 出段中将数据取出,这些数据是从更底层的处理段中依次取出的。

  Presto 的运行模型与 Hive 有着本质的区别。Hive 将查询翻译成多阶段的 Map-Reduce 任务,一个接着一个地运行。 每一个任务从磁盘上读取输入数据并且将中间结果输出到磁盘上。然 而 Presto 引擎没有使用 Map-Reduce。它使用了一个定制的查询执行引擎和响应操作符来支持SQL的语法。除了改进的调度算法之外,所有的数据处理都是在内存中进行的。不 同的处理端通过网络组成处理的流水线。这样会避免不必要的磁盘读写和额外的延迟。这种流水线式的执行模型会在同一时间运行多个数据处理段,一旦数据可用的 时候就会将数据从一个处理段传入到下一个处理段。 

  这样的方式会大大的减少各种查询的端到端响应时间。

  同时,Presto 设计了一个简单的数据存储抽象层,来满足在不同数据存储系统之上都可以使用 SQL 进行查询。存储连接器目前支持除 Hive/HDFS 外,还支持 HBase、Scribe 和定制开发的系统。

http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_b6_e6_9e_84.jpg

图1. Presto架构

 
1.4.在HUE和Shib之间选择了后者
  HUE 大家可能都听说过。Shib 相对陌生一些,它是这么介绍自己的:WebUI for query engines: Hive and Presto。
  潘高锋介绍了二者的优缺点。
HUE
开发语言:Python
优 点:Hue 是一个能够与 Apache Hadoop 交互的 Web 应用程序。一个开源的 Apache Hadoop UI。我们已经在生产环境使用Hue了,而且Hue在管理Hbase/Pig/Hive方面有很大的优势,它还附带了一个Oozie的应用程序,用于创建 和监控工作流程 。
缺点:Hue 是一个比较重的工具,改动起来涉及的东西会比较多,而且以后每次升级都可能会导致我们改动的功能要再修改 。
 
Shib
开发语言:Nodejs
优点:Shib 通过简单的配置就可以直接操作 hive 和 presto。代码量比较小,修改起来工作量少很多 。
缺点:对 Nodejs 不熟悉,有学习成本 。
 
  最后我们选定了代码量和开发量相对较少的 Shib 。
 
1.5.即席查询的界面展示
  登录 shib 后,选择数据仓库 presto-wowo_dw。编写 sql 的时候,可以把表结构的提示框移到一边,边写边参照,如下图所示。
 
图2 边查询边看数据结构
  由于所有的查询都是异步的,所以可以在“我的查询”列表中看到自己的查询语句的执行状态和执行结果,这样不用自己在一直在查询界面等待了,如下图所示。
 
图3 我的查询
  还可以把自己常用的查询语句保存到“书签”里,这是一个很实用的功能。
  接下来就可以开发SQL查询结果站内通知机制以及更复杂的用户访问权限控制机制了。
 
二)选型:HUE+Oozie
应用场景:Hadoop集群计算任务调度和管理平台。
2.1.数据平台跑数据所面对的困难
  电商数据平台的报表维度有很多种,有总体简报角度、运营角度、媒体投放角度等,也可以有商品、商户、用户、竞品等维度,还有日报、周报和月报之分。所以对 应了很多个计算任务。每一个计算任务可以视为一个工作流,毕竟计算过程是很复杂的、一环套一环。那么 HUE+Oozie 就是可视化管理和调度这些工作流的。
  没有 Oozie 之前是什么样?
  一,计算脚本被配置为定时任务,跑飞了只能从海量日志中大海捞针,不知道断在哪儿,只能手动清数据从头再跑。任务计算时间特别长,不知道当前跑到哪一步了,还需要多久能跑完。
  二,难以精确控制任务A跑完了才能跑任务B,只能在不同定时任务之间留足够长的时间间隔,缺乏弹性。
 
2.2.Oozie是什么
  Oozie是一种 Java Web 应用程序,它运行在 Tomcat 中,并使用数据库来存储以下内容:工作流定义、当前运行的工作流实例(包括实例的状态和变量)。
  我们最欣赏它的三点:
  • Oozie允许失败的工作流从任意点重新运行,这对于处理工作流中由于前一个耗时活动而出现瞬态错误的情况非常有用。
  • 工作流执行过程可视化。
  • 工作流的每一步的日志、错误信息都可以点击查看,并实时滚动,便于排查问题。
 
2.3.还是看截图吧
  先选择HUE导航栏上的“Oozie Editor/Dashboard”,看到默认面板:
http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_oozie%e9%bb%98%e8%ae%a4%e9%9d%a2%e6%9d%bf.png
图5 oozie默认面板
 
  点击某个工作流,进入详情页:
http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_%e5%b7%a5%e4%bd%9c%e6%b5%81%e8%af%a6%e6%83%85%e9%a1%b5.png
图6 工作流详情页
  一个工作流的定义如下图7所示,XML格式的 hPDL。hPDL是一种很简洁的语言,只会使用少数流程控制和动作节点。控制节点会定义执行的流程,并包含工作流的起点和终点(start、end和 fail节点)以及控制工作流执行路径的机制(decision、fork和join节点)。
http://images.cnblogs.com/cnblogs_com/zhengyun_ustc/255879/o_oozie%e5%b7%a5%e4%bd%9c%e6%b5%81%e5%ae%9a%e4%b9%89.png
图7 工作流定义
 
  现在,数据平台的各种计算任务都迁移到 Oozie 中,按照 hPDL 语言格式一一重新定义。
 
三)总结一下数据中心的各种技术选型
  罗列如下,不再解释:
Apache Hadoop/Hive/HBase
Apache Pig
Flume/Kafka/Storm/Sqoop/awk
Facebook Presto
MySQL
HUE/Shib
Oozie
 
-over-


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [数据 技术 shib] 推荐:

#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie

- - ITeye博客
郑昀 创建于2014/10/30 最后更新于2014/10/31. 一)选型:Shib+Presto. 应用场景:即席查询(Ad-hoc Query). 使用者是产品/运营/销售运营的数据分析师;. 要求数据分析师掌握查询SQL查询脚本编写技巧,掌握不同业务的数据存储在不同的数据集市里;. 不管他们的计算任务是提交给 数据库 还是 Hadoop,计算时间都可能会很长,不可能在线等待;.

NoSQL 数据建模技术

- - 博客 - 伯乐在线
全文译自墙外文章“ NoSQL Data Modeling Techniques”,译得不好,还请见谅. 这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉. 我的感觉是,关系型数据库想把一致性,完整性,索引,CRUD都干好,NoSQL只干某一种事,但是牺牲了很多别的东西. 总体来说,我觉得NoSQL更适合做Cache.

数据隐藏技术

- - WooYun知识库
数据隐藏已经渗透到了生活中的方方面面,之前一直对数据隐藏很有兴趣,但是乌云上关于数据隐藏的文章偏少,看了 隐写术总结之后,我又去找了一些关于数据隐藏的资料,这里来与大家分享和总结下其他一些比较常见的隐藏手段,如果有写错的地方请直接指出,谢谢. vmdk文件大家应该都比较熟悉了,它本质上是物理硬盘的虚拟版,所以也会存在跟物理硬盘的分区和扇区中类似的填充区域,我们可以利用这些填充区域来把我们需要隐藏的数据隐藏到里面去,这样可以避免隐藏的文件增加了vmdk文件的大小(如直接附加到文件后端),也可以避免由于vmdk文件大小的改变所带来的可能导致的虚拟机错误.

Big Data(大数据)技术简析

- - 服务器运维与网站架构|Linux运维|互联网研究
Big Data是近来的一个技术热点,但从名字就能判断它并不是什么新词. 历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题. 被誉为数据仓库之父的Bill Inmon早在20世纪90年代就经常将Big Data挂在嘴边了. 然而,Big Data作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展.

大数据:方法与技术

- - 透明思考 - Thoughts
(商业读书会第23期的题目:Big Data. McKinsey Quarterly 的,和一篇. 通篇无非就是在讲(1)数据真的很大;(2)各行各业都要学会处理大数据. 于是 另一篇文章 进入视野. 不过最精彩的还是麦肯锡的 分析报告 ,其中最吸引我的是“方法和技术”的部分. 关于“怎么做”的这部分,麦肯锡的报告里分成三个部分:分析方法;技术;可视化展现.

数据挖掘分类技术

- - CSDN博客云计算推荐文章
从分类问题的提出至今,已经衍生出了很多具体的分类技术. 下面主要简单介绍四种最常用的分类技术,不过因为原理和具体的算法实现及优化不是本书的重点,所以我们尽量用应用人员能够理解的语言来表述这些技术. 而且我们会在第4章再次给读者讲述分类算法和相关原理. 在我们学习这些算法之前必须要清楚一点,分类算法不会百分百准确.

Oracle 数据压缩(Compression) 技术 说明

- - CSDN博客推荐文章
Oracle 11g EE版本中只有: Basic Table Compression ,而 AdvanceCompression Feature需要单独购买. 11g Advanced Compression 有如下特性:. --支持了DML 语句的compress,下面会重点关注. --包括RMAN和expdp/impdp.对数据泵,compress 是inline的,在impdp时不需要进行解压缩,直接导入即可.

阿里双十一数据库技术

- - Hello Database
真的很抱歉,我的博客已经很久没有更新了,因为花了太多的时间在微博和微信上,当然最主要的原因还是工作实在太忙了,仅剩的那点业余时间都用来陪娃了. 从2012年开始,工作重心转移到了淘宝和天猫,我的技术方向也发生了改变,2012年和2013年,经历了两次双十一,在这个过程中学到了很多东西. 尤其是2013年的双十一,系统准备的非常充分,技术上有很多创新,团队也得到了成长.

下一代大数据分析技术

- - Parallel Labs
原文发表于《程序员》杂志2013年第2期.. 随着以Hadoop为代表的大数据分析技术的普及,大数据的商业价值得到深入挖掘,并开始在互联网、零售、医疗、物联网等多个行业里成为商业变革的主导力量. Facebook最近就发布了名为Graph Search的新型社交搜索产品,基于海量的社交关系网络及“Likes”行为数据,为用户提供个性化的社交搜索服务,该产品被认为将是Google搜索业务的重要竞争对手.

oracle数据库同步技术

- - 数据库 - ITeye博客
项目上有一个需求,从外网的另一个库中的数据同步到其他网段中. 基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术. Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年刚收购的一款叫做GoldenGate的数据同步软件.