自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

just do IT

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 一种解决Impala自定义属性查询的方案

一种解决Impala自定义属性查询的方案背景在使用Impala做自助分析的过程中,我们经常发现自定义属性的需求,通常情况下用户会将这种不确定key的字段全部塞到一个MAP字段中,然后通过Impala的复杂结构查询语法进行查询,目前Impala只支持Parquet格式表的schema中使用复杂数据类型(包括STRUCT、ARRAY和MAP),查询语法可以参考 Impala复杂类型语法,但是它存在两个弊

2018-01-29 18:34:03 7611 1

原创 Impala高性能探秘之Runtime Filter

前言书接上文,如果说HDFS的数据访问层各个BigData SQL Engine做的都大同小异的话,那么Runtime Filter(下文简称RF)则是Impala比较独特的”黑科技”了,在深入学习Impala之前对于这个名词比较陌生,但它绝对是Impala性能提升的一大法宝,我们将试图围绕着如下几个问题展开以详细介绍Runtime Filter的细节。什么是Runtime FilterRunt

2017-08-10 20:26:46 4951

原创 Impala高性能探秘之HDFS数据访问

Impala是一个高性能的OLAP引擎,Impala本身只是一个OLAP-SQL引擎,它访问的数据存储在第三方引擎中,第三方引擎包括HDFS、Hbase、kudu。对于HDFS上的数据,Impala支持多种文件格式,目前可以访问Parquet、TEXT、avro、sequence file等。对于HDFS文件格式,Impala不支持更新操作,这主要限制于HDFS对于更新操作的支持比较弱。本文主要介绍

2017-07-11 20:08:19 8764

原创 Impala查询详解第一篇——简介

Impala的定位是一种新型的MPP查询引擎,但是它又不是典型的MPP类型的SQL引擎,提到MPP数据库首先想到的可能是GreenPlum,它的每一个节点完全独立,节点直接不共享数据,节点之间的信息传递全都通过网络实现。而Impala可以说是一个MPP计算引擎,它需要处理的数据存储在HDFS、Hbase或者Kudu之上,这些存储引擎都是独立于Impala的,可以称之为第三方存储引擎,Impala使用

2017-07-10 16:09:01 6820

原创 Impala中的invalidate metadata和refresh

前言Impala采用了比较奇葩的多个impalad同时提供服务的方式,并且它会由catalogd缓存全部元数据,再通过statestored完成每一次的元数据的更新到impalad节点上,Impala集群会缓存全部的元数据,这种缓存机制就导致通过其他手段更新元数据或者数据对于Impala是无感知的,例如通过hive建表,直接拷贝新的数据到HDFS上等,Impala提供了两种机制来实现元数据的更新,分

2017-05-27 12:03:57 39511 1

原创 谈谈分布式Aggregation

聚合操作(Aggregation)是OLAP分析查询中最常见的操作之一,可以说它是数据分析查询的基石,它对应这SQL中的GROUP BY子句,OLAP中的上卷下钻操作无非就是对于GROUP BY和WHERE条件的改变,如何能够高效的实现聚合是决定OLAP分析性能的最重要因素之一(另外几个因素包括如何减少SCAN记录数、如何高效实现JOIN等)。

2017-05-21 12:29:36 6396 1

原创 JAVA开发血泪之路:一步步搭建spring框架

前言作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写web程序也宁愿使用jetty这样的嵌入式的web server实现,自己写servlet,总感觉从main函数开始都在自己的掌控范围之内,但是这样的方式的确有点原始,也看到各种各样的开源系统使用spring实现web服务,虽然代码总是能够看明白,但是

2017-04-25 15:19:58 69977 11

原创 Impala源码之订阅发布系统的实现

众所周知,Impala包含三个模块,分别是impalad、catalogd和statestored,其中statestored模块的作用是实现一个业务无关的订阅(Subscribe)发布(Publish)系统,catalod和impalad中的部分消息传递需要通过statestored传递,为什么要使用这样一个业务无关的服务来传递消息呢?下面我们来揭开它神秘的面纱。

2017-02-28 20:26:04 1760

转载 【转载】SQL on Hadoop中用到的主要技术——MPP vs Runtime Framework

个人觉得该文章对于诸如Impala这样的MPP架构的SQL引擎和Runtime Framework架构的Hive/Spark SQL进行对比,感觉总结的特别好,并且和本人最近的公司相近,学习转载之。

2017-02-13 20:56:09 3185

原创 Hiveserver2的代理执行之路

hiveserver2的代理访问可以使得平台端代理任意用户执行SQL操作就像该用户自己执行的操作一样(就像一个普通用户直接使用hive CLI执行操作),本文主要探索hiveserver2是如何使用代理的方式实现支持不同用户完成SQL操作,为修改impala支持对应的操作做铺垫。

2017-02-10 13:55:52 11511

原创 Impala源代码学习序

带着问题看源码,本文主要针对阅读impala源代码提出的一些针对性的问题,希望能够跟着这些问题学习impala源代码

2017-01-15 13:41:05 1491

原创 晚到的辞旧迎新

以前过日子总是过一天是一天,缺乏总结和计划,个人感觉这样会让自己遗失很多宝贵的东西,于是借着辞旧迎新的时节,对过去的一年总结和已经迎来的新年进行一个计划,计划这东西当然是因人而异的,不过我本人算是一个典型的程序员:老实,闷骚,爱运动但是很少时间运动,还年轻。总结时光如梭,白驹过隙,2016年就这样匆匆过去了,回头望望发现感慨良多,最悲伤的是自己又长大了一岁,在走向而立之年的路上越走越近,过去的这一年

2017-01-15 13:13:40 591

原创 Impala负载均衡方案——zookeeper

由来之前根据Impala官方的文档尝试使用haproxy实现impalad节点的负载均衡,但是这种方案存在一些弊端,例如haproxy本身也是单点的,虽然可以通过keeplived实现haproxy的高可用,但是这样的配置难免有点太重了,实现impala负载均衡的同时还需要多部署两个组件,增大了系统运维的复杂度。在大数据生态圈中zookeeper是一个必不可少的自身具有高可用保证的组件,本文探讨如何

2016-12-28 20:24:23 4278

原创 Impala负载均衡方案

概述Impala分为是三个组件,statestored/catalogd和impalad,其中statestored和catalogd是单点的,没有高可用的需求,因为这两个实例是无状态的,本身不存储任何数据,例如catalogd的数据存储在第三方数据库(例如mysql中),statestore的数据全都存储在内存中,可以通过简单的主备的方式来实现高可用,本文最后会提到。正常情况下只有master提供

2016-12-22 22:06:01 7966 3

原创 Impala权限管理机制

在Impala中,权限管理的作用主要是确定某个用户是否有权限访问某些资源,用户对于这些资源具有哪种访问权限等,这里涉及到三个概念:用户,资源和权限。对于Impala 1.1之后的版本,可以直接集成Apache Sentry服务来实现Impala的权限管理,由于Impala可以和hive共享元数据库,包括权限机制。用户在不开启权限认证的impala集群中,没有用户的概念存在了,所有访问Impala

2016-12-14 15:03:55 18942

原创 Scala学习笔记1——初始Scala

引入最近因为Spark的兴起,Scala也炙手可热,个人并不认为它是一个新兴的编程语言,虽然它提供了全新的语法,本文主要介绍Scala环境和几种运行方式,以及通过实例观察Scala和JAVA的关系,学习Scala主要参考Scala语法手册和Scala实例。Scala环境Linux上可以使用类似于JDK环境安装的方式,下载Scala,设置PATH,不过我在Scala官网上找了半天Linux包才在这里找

2016-10-22 18:51:55 6510

原创 Impala客户端访问实例

Impala作为一个SQL引擎,必然提供了Jdbc访问接口,特殊的是Impala完全兼容hiveserver2的接口,所以我们可以使用的客户端包括:beelineimpala-shellzeppelinhue前两种作为shell方式提供,其中beeline是hive的jdbc客户端(类似于mysql客户端),使用!connect的方式连接服务器,url的结构为jdbc:hive2://ho

2016-10-21 16:57:22 11254 1

原创 Impala部署、权限、资源隔离杂谈

概述最近一直在倒腾Impala,公司内部也属于刚刚部署使用,初次体验感觉性能还是比较好的(可能是使用Hive过多的原因),并且Impala还可以支持Kudu引擎,这个目前看上去是实时离线统一的较好解决方案,因此考虑在公司内部推广使用,但是一旦给多个产品部署、使用就需要考虑如下的几个问题:部署方式:它决定了以后的扩展性和运维复杂度等。权限隔离:如何做到用户的数据不被他授权的用户查询。资源隔离:用

2016-10-07 18:19:02 7754 1

原创 自己动手写Impala UDF

概述出于对可扩展性和性能的考虑,UDF已变成大数据生态圈查询引擎的必备功能之一,无论是Calcite、Hive、Impala都对其进行支持,但是UDF的支持有利也有弊,好处在于它提供了对某些用户独有需求的支持,例如某些产品需要将表中的某字段使用自定义的方式解析成可读字段,例如需要实现特殊的聚合函数;它的弊端在于它对用户开发,这样对于恶意的用户可能执行非正常的逻辑.

2016-10-06 23:29:11 9828 3

原创 Impala优化基本方案

Impala性能的调优是一个不断调整的过程,这里介绍了一些基本你的准则,当然对于具体的性能问题还是要借住实际的工具分析。

2016-09-21 11:40:00 9242

原创 大数据时代快速SQL引擎-Impala

背景随着大数据时代的到来,Hadoop在过去几年以接近统治性的方式包揽的ETL和数据分析查询的工作,大家也无意间的想往大数据方向靠拢,即使每天数据也就几十、几百M也要放到Hadoop上作分析,只会适得其反,但是当面对真正的Big Data的时候,Hadoop就会暴露出它对于数据分析查询支持的弱点。甚至出现《MapReduce: 一个巨大的倒退》此类极端的吐槽,这也怪不得Hadoop,毕竟它的设计就是

2016-09-04 13:20:41 37304

原创 Kylin性能调优记——业务技术两手抓

背景最近开始使用了新版本的Kylin,在此之前对于新版本的了解只是代码实现和一些简单的新功能测试,但是并没有导入实际场景的数据做分析和查询,线上Hadoop稳定之后,逐渐得将一些老需求往新的环境迁移,基于以前的调研,新版本(V2,版本为1.5.2)的Kylin提供了几个比较显著的功能和优化:新的度量类型,包括TOPN、基于bitmap的精确distinct count和RAW。自定义度量框架,用

2016-07-20 23:58:05 12656 13

原创 关于Kylin结果缓存的思考

由来Apache Kylin定位是大数据量的秒级SQL查询引擎,原理是通过预计算所有可能的维度组合存储在Hbase中,查询时解析SQL获取维度和度量信息,然后再从hbase中扫描获取数据返回,个人认为Kylin最强大的地方在于实现了SQL引擎,如果使用自定义的格式化查询语言也可以完成相应的数据访问操作,无非是指定查询的维度、度量、聚合函数、过滤条件,排序列等等。但是这种描述较之于SQL太弱了,SQL

2016-07-10 12:27:22 12012

原创 Parquet与ORC:高性能列式存储格式

背景随着大数据时代的到来,越来越多的数据流向了Hadoop生态圈,同时对于能够快速的从TB甚至PB级别的数据中获取有价值的数据对于一个产品和公司来说更加重要,在Hadoop生态圈的快速发展过程中,涌现了一批开源的数据分析引擎,例如Hive、Spark SQL、Impala、Presto等,同时也产生了多个高性能的列式存储格式,例如RCFile、ORC、Parquet等,本文主要从实现的角度上对比分析

2016-07-09 20:37:22 64306 14

原创 安卓开发笔记——从0到1

本文介绍了安卓的基础知识、环境搭建以及一个简单的事例的启动。

2016-05-29 13:20:44 1148

原创 《JAVA编程思想》读书笔记1——OOP思想

面向对象思想JAVA是一种面向对象编程语言,它基于Smalltalk语言,作为OOP语言,它具有以下五个基本特性万物皆对象,每一个对象都会存储数据,并且可以对自身执行操作。因此,每一个对象包含两部分:成员变量和成员方法。在成员方法中可以改变成员变量的值。程序是对象的集合,他们通过发送消息来告知彼此所要做的事情,也就是调用相应的成员函数。每一个对象都有自己的由其他对象所构成的存储,也就是说在创建

2016-05-03 22:34:28 2771

原创 Parquet与ORC性能测试报告

本文主要使用Hive引擎对比测试了两种业界较为认可的列式存储格式——ORC和Parquet,并使用Text存储格式做对比,设置了星状模型、扁平式宽表,嵌套式宽表等多种场景进行测试,以供感兴趣的同学参考。

2016-04-19 10:58:43 18335 4

原创 Kylin cuboid算法修改

缘由    近期由于发现线上cube的构建时间太慢(一个项目的cube构建前一天的数据一般需要170分钟左右),目前我们接入的应用才三个,如果后期接入更多的cube之后会导致更慢的cube构建速度,于是深入了解了一下cuboid是如何确定的,看了代码之后发现和我们预想的不一样,于是经过咨询社区之后也觉得之前的算法是存在一定的问题(2.x版本已经对此做了修改),因此就准备对cuboid的计算进行修改

2016-04-04 21:05:43 4289 1

原创 新一代列式存储格式Parquet

Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。Parquet最初是由Twitter和Cloudera(由于Impala的缘故)合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,

2016-03-27 20:16:08 38425 4

原创 Kylin执行查询流程分析

Kylin基于MOLAP实现,查询的时候利用Calcite框架,从存储在Hbase的segment表(每一个segment对应着一个htable)获取数据,其实理论上就相当于使用Calcite支持SQL解析,数据从Hbase中读取,中间Kylin主要完成如何确定从Hbase中的哪些表读数据,如何读取数据,以及解析数据的格式。场景设置首先设想一种cube的场景:维度:A(cardinality=10)

2016-03-09 20:39:23 18365 9

原创 SQL查询操作处理流程

SQL查询  这里看到书上讲述SQL的查询处理,在SQL中查询是通过select语句以及一些辅助的子句来实现需要的输出,这里使用的是mysql,首先,要理解物理表和虚拟表的区别,物理表就是存储在文件系统上的一个或者多个文件,按照相应的存储数据结构将每一行的数据存储,虚拟表是我们在物理表的基础上构建出来的,可能是全部的表结构,也可能是表中的部分字段或者部分行,甚至可能是表中某些字段经过某种运算之后的结

2016-02-04 10:24:52 5991 3

原创 Kylin使用之创建Cube和高级设置

Cube模型和Kylin创建Cube时的高级设置,Rowkey、维度组、维度字典等。

2016-01-23 17:22:25 19530 11

原创 Kylin实践之使用Hive视图

在使用Kylin过程中有一些需求是hive原始表结构完成不了了的,这时候使用hive的视图可以增加灵活性并且满足各种需求,看我们是如何使用的吧

2016-01-20 15:47:41 10781 2

原创 【Kylin】Kylin中的cube构建

kylin如何构建cube的,从原始数据(hive)到目标数据(hbase)的过程。

2015-12-20 19:14:30 23001 16

原创 意淫设定时间系统de实现—由订外卖想到的

周末无事订份外卖,作为一个码农当然更关心他们系统的实现,有这样的一个小系统,商家可以设定服务时间,顾客可以查看某个时间提供服务的商家,那么单纯的使用数据库来实现这个功能该怎么做呢?于是自己意淫了一下~

2015-12-12 18:14:12 1364

原创 初识Calcite——使用实例

学习使用Calcite

2015-11-18 23:58:55 33840 6

原创 Kylin任务调度模块

kylin可能执行一些构建cube等任务,因此需要一个比较合理的任务调度机制,本文介绍了kylin如何设置任务调度模块的,以及对链式任务执行逻辑进行分析。

2015-08-30 14:28:50 7427

原创 OLAP引擎——Kylin介绍

最近一直在学习和使用kylin,分享一下学习的收获以及对kylin的理解~

2015-08-30 12:01:41 43333 31

原创 Mondiran创建连接

mondrian创建连接的过程,不包括如何加载schema内容。

2015-08-01 19:41:57 2252 1

原创 改造mondrian的构想

对OLAP引擎(主要是mondrian)的一些理解

2015-08-01 16:53:26 3274 5

TCP-IP技术大全

TCP-IP技术大全 TCP-IP技术大全 TCP-IP技术大全

2011-09-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除