大数据
文章平均质量分 89
教练_我要踢球
好好想一下,认真码代码~
展开
-
Hive作为Mondrian的数据源
使用hive作为mondrian数据源,实现基于hadoop的数据分析原创 2015-05-04 16:47:24 · 5419 阅读 · 2 评论 -
Impala权限管理机制
在Impala中,权限管理的作用主要是确定某个用户是否有权限访问某些资源,用户对于这些资源具有哪种访问权限等,这里涉及到三个概念:用户,资源和权限。对于Impala 1.1之后的版本,可以直接集成Apache Sentry服务来实现Impala的权限管理,由于Impala可以和hive共享元数据库,包括权限机制。用户在不开启权限认证的impala集群中,没有用户的概念存在了,所有访问Impala原创 2016-12-14 15:03:55 · 18894 阅读 · 0 评论 -
Impala客户端访问实例
Impala作为一个SQL引擎,必然提供了Jdbc访问接口,特殊的是Impala完全兼容hiveserver2的接口,所以我们可以使用的客户端包括:beelineimpala-shellzeppelinhue前两种作为shell方式提供,其中beeline是hive的jdbc客户端(类似于mysql客户端),使用!connect的方式连接服务器,url的结构为jdbc:hive2://ho原创 2016-10-21 16:57:22 · 11245 阅读 · 1 评论 -
Impala部署、权限、资源隔离杂谈
概述最近一直在倒腾Impala,公司内部也属于刚刚部署使用,初次体验感觉性能还是比较好的(可能是使用Hive过多的原因),并且Impala还可以支持Kudu引擎,这个目前看上去是实时离线统一的较好解决方案,因此考虑在公司内部推广使用,但是一旦给多个产品部署、使用就需要考虑如下的几个问题:部署方式:它决定了以后的扩展性和运维复杂度等。权限隔离:如何做到用户的数据不被他授权的用户查询。资源隔离:用原创 2016-10-07 18:19:02 · 7746 阅读 · 1 评论 -
自己动手写Impala UDF
概述出于对可扩展性和性能的考虑,UDF已变成大数据生态圈查询引擎的必备功能之一,无论是Calcite、Hive、Impala都对其进行支持,但是UDF的支持有利也有弊,好处在于它提供了对某些用户独有需求的支持,例如某些产品需要将表中的某字段使用自定义的方式解析成可读字段,例如需要实现特殊的聚合函数;它的弊端在于它对用户开发,这样对于恶意的用户可能执行非正常的逻辑.原创 2016-10-06 23:29:11 · 9819 阅读 · 3 评论 -
Impala优化基本方案
Impala性能的调优是一个不断调整的过程,这里介绍了一些基本你的准则,当然对于具体的性能问题还是要借住实际的工具分析。原创 2016-09-21 11:40:00 · 9234 阅读 · 0 评论 -
大数据时代快速SQL引擎-Impala
背景随着大数据时代的到来,Hadoop在过去几年以接近统治性的方式包揽的ETL和数据分析查询的工作,大家也无意间的想往大数据方向靠拢,即使每天数据也就几十、几百M也要放到Hadoop上作分析,只会适得其反,但是当面对真正的Big Data的时候,Hadoop就会暴露出它对于数据分析查询支持的弱点。甚至出现《MapReduce: 一个巨大的倒退》此类极端的吐槽,这也怪不得Hadoop,毕竟它的设计就是原创 2016-09-04 13:20:41 · 37291 阅读 · 0 评论 -
Impala负载均衡方案——zookeeper
由来之前根据Impala官方的文档尝试使用haproxy实现impalad节点的负载均衡,但是这种方案存在一些弊端,例如haproxy本身也是单点的,虽然可以通过keeplived实现haproxy的高可用,但是这样的配置难免有点太重了,实现impala负载均衡的同时还需要多部署两个组件,增大了系统运维的复杂度。在大数据生态圈中zookeeper是一个必不可少的自身具有高可用保证的组件,本文探讨如何原创 2016-12-28 20:24:23 · 4259 阅读 · 0 评论 -
Hiveserver2的代理执行之路
hiveserver2的代理访问可以使得平台端代理任意用户执行SQL操作就像该用户自己执行的操作一样(就像一个普通用户直接使用hive CLI执行操作),本文主要探索hiveserver2是如何使用代理的方式实现支持不同用户完成SQL操作,为修改impala支持对应的操作做铺垫。原创 2017-02-10 13:55:52 · 11473 阅读 · 0 评论 -
Impala源码之订阅发布系统的实现
众所周知,Impala包含三个模块,分别是impalad、catalogd和statestored,其中statestored模块的作用是实现一个业务无关的订阅(Subscribe)发布(Publish)系统,catalod和impalad中的部分消息传递需要通过statestored传递,为什么要使用这样一个业务无关的服务来传递消息呢?下面我们来揭开它神秘的面纱。原创 2017-02-28 20:26:04 · 1757 阅读 · 0 评论 -
【转载】SQL on Hadoop中用到的主要技术——MPP vs Runtime Framework
个人觉得该文章对于诸如Impala这样的MPP架构的SQL引擎和Runtime Framework架构的Hive/Spark SQL进行对比,感觉总结的特别好,并且和本人最近的公司相近,学习转载之。转载 2017-02-13 20:56:09 · 3182 阅读 · 0 评论 -
Impala中的invalidate metadata和refresh
前言Impala采用了比较奇葩的多个impalad同时提供服务的方式,并且它会由catalogd缓存全部元数据,再通过statestored完成每一次的元数据的更新到impalad节点上,Impala集群会缓存全部的元数据,这种缓存机制就导致通过其他手段更新元数据或者数据对于Impala是无感知的,例如通过hive建表,直接拷贝新的数据到HDFS上等,Impala提供了两种机制来实现元数据的更新,分原创 2017-05-27 12:03:57 · 39461 阅读 · 1 评论 -
Impala负载均衡方案
概述Impala分为是三个组件,statestored/catalogd和impalad,其中statestored和catalogd是单点的,没有高可用的需求,因为这两个实例是无状态的,本身不存储任何数据,例如catalogd的数据存储在第三方数据库(例如mysql中),statestore的数据全都存储在内存中,可以通过简单的主备的方式来实现高可用,本文最后会提到。正常情况下只有master提供原创 2016-12-22 22:06:01 · 7951 阅读 · 3 评论 -
Kylin性能调优记——业务技术两手抓
背景最近开始使用了新版本的Kylin,在此之前对于新版本的了解只是代码实现和一些简单的新功能测试,但是并没有导入实际场景的数据做分析和查询,线上Hadoop稳定之后,逐渐得将一些老需求往新的环境迁移,基于以前的调研,新版本(V2,版本为1.5.2)的Kylin提供了几个比较显著的功能和优化:新的度量类型,包括TOPN、基于bitmap的精确distinct count和RAW。自定义度量框架,用原创 2016-07-20 23:58:05 · 12647 阅读 · 13 评论 -
关于Kylin结果缓存的思考
由来Apache Kylin定位是大数据量的秒级SQL查询引擎,原理是通过预计算所有可能的维度组合存储在Hbase中,查询时解析SQL获取维度和度量信息,然后再从hbase中扫描获取数据返回,个人认为Kylin最强大的地方在于实现了SQL引擎,如果使用自定义的格式化查询语言也可以完成相应的数据访问操作,无非是指定查询的维度、度量、聚合函数、过滤条件,排序列等等。但是这种描述较之于SQL太弱了,SQL原创 2016-07-10 12:27:22 · 12006 阅读 · 0 评论 -
记一次死锁问题的排查和解决
说起来这个事情还是挺悲催的,记得上周忙的不亦乐乎,目标是修改之前另外一个团队留下来的一坨代码中的一些bug,这个项目是做OLAP分析的,分为两个模块,逻辑服务器主要负责一些元数据的操作,例如页面上展示的一些信息,而分析服务器负责执行查询语句,因为他们之前使用的是mondrian作为OLAP分析引擎,所以输入的查询是MDX语句,然后结果是一个二维的数据。这是基本的项目背景,当然使用mondrian的原创 2015-06-08 20:41:03 · 7704 阅读 · 0 评论 -
Kylin任务调度模块
kylin可能执行一些构建cube等任务,因此需要一个比较合理的任务调度机制,本文介绍了kylin如何设置任务调度模块的,以及对链式任务执行逻辑进行分析。原创 2015-08-30 14:28:50 · 7420 阅读 · 0 评论 -
Kylin实践之使用Hive视图
在使用Kylin过程中有一些需求是hive原始表结构完成不了了的,这时候使用hive的视图可以增加灵活性并且满足各种需求,看我们是如何使用的吧原创 2016-01-20 15:47:41 · 10775 阅读 · 2 评论 -
Kylin使用之创建Cube和高级设置
Cube模型和Kylin创建Cube时的高级设置,Rowkey、维度组、维度字典等。原创 2016-01-23 17:22:25 · 19523 阅读 · 11 评论 -
【Kylin】Kylin中的cube构建
kylin如何构建cube的,从原始数据(hive)到目标数据(hbase)的过程。原创 2015-12-20 19:14:30 · 22993 阅读 · 16 评论 -
Kylin执行查询流程分析
Kylin基于MOLAP实现,查询的时候利用Calcite框架,从存储在Hbase的segment表(每一个segment对应着一个htable)获取数据,其实理论上就相当于使用Calcite支持SQL解析,数据从Hbase中读取,中间Kylin主要完成如何确定从Hbase中的哪些表读数据,如何读取数据,以及解析数据的格式。场景设置首先设想一种cube的场景:维度:A(cardinality=10)原创 2016-03-09 20:39:23 · 18353 阅读 · 9 评论 -
Kylin cuboid算法修改
缘由 近期由于发现线上cube的构建时间太慢(一个项目的cube构建前一天的数据一般需要170分钟左右),目前我们接入的应用才三个,如果后期接入更多的cube之后会导致更慢的cube构建速度,于是深入了解了一下cuboid是如何确定的,看了代码之后发现和我们预想的不一样,于是经过咨询社区之后也觉得之前的算法是存在一定的问题(2.x版本已经对此做了修改),因此就准备对cuboid的计算进行修改原创 2016-04-04 21:05:43 · 4287 阅读 · 1 评论 -
SQL查询操作处理流程
SQL查询 这里看到书上讲述SQL的查询处理,在SQL中查询是通过select语句以及一些辅助的子句来实现需要的输出,这里使用的是mysql,首先,要理解物理表和虚拟表的区别,物理表就是存储在文件系统上的一个或者多个文件,按照相应的存储数据结构将每一行的数据存储,虚拟表是我们在物理表的基础上构建出来的,可能是全部的表结构,也可能是表中的部分字段或者部分行,甚至可能是表中某些字段经过某种运算之后的结原创 2016-02-04 10:24:52 · 5979 阅读 · 3 评论 -
OLAP引擎——Kylin介绍
最近一直在学习和使用kylin,分享一下学习的收获以及对kylin的理解~原创 2015-08-30 12:01:41 · 43307 阅读 · 31 评论 -
新一代列式存储格式Parquet
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。Parquet最初是由Twitter和Cloudera(由于Impala的缘故)合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,原创 2016-03-27 20:16:08 · 38376 阅读 · 4 评论 -
Parquet与ORC性能测试报告
本文主要使用Hive引擎对比测试了两种业界较为认可的列式存储格式——ORC和Parquet,并使用Text存储格式做对比,设置了星状模型、扁平式宽表,嵌套式宽表等多种场景进行测试,以供感兴趣的同学参考。原创 2016-04-19 10:58:43 · 18314 阅读 · 4 评论 -
Parquet与ORC:高性能列式存储格式
背景随着大数据时代的到来,越来越多的数据流向了Hadoop生态圈,同时对于能够快速的从TB甚至PB级别的数据中获取有价值的数据对于一个产品和公司来说更加重要,在Hadoop生态圈的快速发展过程中,涌现了一批开源的数据分析引擎,例如Hive、Spark SQL、Impala、Presto等,同时也产生了多个高性能的列式存储格式,例如RCFile、ORC、Parquet等,本文主要从实现的角度上对比分析原创 2016-07-09 20:37:22 · 64259 阅读 · 14 评论 -
Impala查询详解第一篇——简介
Impala的定位是一种新型的MPP查询引擎,但是它又不是典型的MPP类型的SQL引擎,提到MPP数据库首先想到的可能是GreenPlum,它的每一个节点完全独立,节点直接不共享数据,节点之间的信息传递全都通过网络实现。而Impala可以说是一个MPP计算引擎,它需要处理的数据存储在HDFS、Hbase或者Kudu之上,这些存储引擎都是独立于Impala的,可以称之为第三方存储引擎,Impala使用原创 2017-07-10 16:09:01 · 6813 阅读 · 0 评论