天天看点

当Hadoop SQL工具与大数据框架携手同行

目前,sql-on-hadoop的采用率仍然偏低,但是其发展似乎是与hadoop本身的采用有着相似的步调。2015年由it研究和教育机构tdwi进行的一项对新兴技术的调查证实了这一结论。

在320位受访者中只有16%的人表示他们所在的企业正在使用商业sql-on-hadoop引擎作为商业智能或分析应用程序的一部分; 344位受访者中有22%的人说hadoop sql技术正用于管理数据。在后一种情况中,部署水平与前一种是接近的,而这也符合调查当时以及计划三年内的情况,这表明大多数hadoop用户同样实现了sql-on-hadoop工具(见下表)。

当Hadoop SQL工具与大数据框架携手同行

progressive casualty insurance co是用户之一,在2013年开始运行hadoop集群来处理和分析从客户的汽车收集的远程信息技术数据,这是基于使用情况的汽车保险项目的一部分,该项目叫做snapshot(快照);该集群是基于hortonworks公司的hadoop分布式环境,它同样支持对用于保险产品定价的数据,以及来自progressive网站的活动日志进行研究和开发。

大部分分析查询、提取、转换和加载(etl)集成过程是针对集群中的数据执行的,而这些过程是由一款开源sql-on-hadoop工具hive创建的。“progressive的业务分析师和数据科学家已经是重度sql用户,因此我们想要让提供给他们的数据结构保持不变,”该公司数据和分析部门的主管pawan divakarla说,“我们拥有的整个业务社群都在使用数据,而让他们去学习别的东西是没有意义的。”

光有hive是不够的 chris barendt是一名it架构师,他说progressive在部署hive的早期遇到了一些问题,但是该技术如今变得更加稳定而且满足用户的大部分需求。但是要帮助提升hive的性能让它能够支持交互式查询,俄亥俄州的mayfield village保险公司用tez对hadoop sql引擎进行了增强,tez是一款开源应用程序框架,它起源于hortonworks并且是用来优化hadoop系统中的数据处理吞吐量的。

同样,大多数progressive的数据分析师通过tableau的bi软件或hue来和hive协同工作,而hue最初是由hadoop供应商cloudera 公司开发的一款用于web应用程序的用户界面。只有某些有能力的用户直接在hive中用命令行sql编码,barendt说。 在线约会服务商zoosk公司将hive的结合体用于etl,并将cloudera的impala sql查询软件用于分析,同时也在前端使用hue和tableau来缓解数据分析师的编码工作。这家位于旧金山的公司在2012年部署了基于cloudera的hadoop集群,起初是用于处理大量用户活动和其网站产生系统日志数据,然后将信息的聚合视图传至一个基于microsoft sql server数据库构建的企业级数据仓库。

直到今年早些时候,martin lam还是zoosk分析和数据科学部门的资深主管,他说虽然在公司里其开发人员首先仍然是尝试在hadoop的原始处理环境——mapreduce上进行编程。但是这要比使用sql花费更多的时间。使用mapreduce要用几个小时来编写和测试一项任务,而用sql则只需要几分钟。zoosk紧接着便实现了hive来支持在集群中处理etl。尽管如此,hadoop sql工具对于支持数据的随机分析非常缓慢。因此,“我们并不将hadoop作为分析平台,”

lam说。 hadoop sql中的天作之合? 当cloudera发布了impala的测试版之后,情况发生了改变。zoosk签约成为早期用户,而且lam说查询引擎的性能使得对原始hadoop数据的分析更为可行。 例如,他说在与parquet的结合中,zoosk于2015年中期将一种针对hadoop的柱状存储格式加入其大数据架构,impala能够在网站用户交互中在八秒内执行一项典型查询。通过对比,如果单独使用hive或是将hive和parquet结合使用,同样的查询分别会花费八分钟和六分钟。更快的速度同样能够支持额外更先进的应用程序,特别是行为匹配,这旨在根据zoosk用户对网站的使用情况来预测可能的匹配。 zoosk坚持在etl上使用hive,然而为了处理每天从网站抓取的数百万数据记录,集群中信息的输入量已经达到大约200tb。“impala可以提供很快的速度,但是如果你不加小心的话,它是不可预测的,”lam说,而使用hive则能够保证更容易地完成一项工作。” impala仍然缺少某些标准sql功能,包括支持扩展标记语言和javascript object notation函数以及类似映射和数组的非数值类型。“但是这一差距正逐渐缩小,”lam说,他如今在facebook工作。“对于大部分分析用例,你是能够获得通过的。”

这同样适用于apache spark处理引擎的spark sql模块,benny blum说,他是sellpoints公司产品和数据部门的副总,这是一家位于加利福尼亚州emeryville的在线营销和广告公司,其对etl的处理使用的就是spark sql。 blum说:“如今有些事情我无法用spark sql来完成,随着开发工作的进行,你肯定认为你处在一种语言的前沿。”但另一方面,他指出sellpoints所能看到的用spark sql的查询速度远远高于六至八个月之前的水平,”这要得益于对sql技术的改进以及公司对于spark整体更为有效的利用。

====================================分割线================================

本文转自d1net(转载)