Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

简介: Apache Zeppelin系列教程第九篇——Zeppelin NoteBook数据缓存

背景

在使用Zeppelin JDBC Intercepter 对于Hive 数据进行查询过程中,如果遇到非常复杂的sql,查询效率是非常慢

比如:

select dt,count(*) from table group by dt

做过数据开发的同学都知道,在hive sql查询过程中,hive 会被转换为MapReduce,但是对于不是所有sql 都会有mapper和reducer 的过程,如果只是简单的查询不会涉及reducer,只有统计相关的查询会涉及到reducer,而其中的shuffle 和 reducer 是非常耗时

如果有有这样一些sql

sql1:

select * from ( select name,count(*) from table0 group name ) t where name=’xiaohong’

sql2:

select * from ( select name,count(*) from table0 group name ) t where name=’xiaoli’

我们能看到sql1 和sql2 只是修改了一下查询条件,但是如果是单独执行,则需要对进行两次完整的查询,比如说:sql1需要花费10分钟,同样sql2也需要再花费10分钟

而adhoc 场景中,这种场景非常常见,只是简单修改一个sql 的查询条件就需要走多次一模一样的流程。

那我们有没有什么办法去优化下?

优化思路分析

无论是hive sql 还是spark sql,只要是复杂的sql,难免会涉及到shuffle或者reducer 过程,这两个过程恰恰是整个过程中非常耗时的过程。那我们现在分析哪些大数据的查询sql会导致查询非常慢呢?

(1)sql 里面含有group by、distinct

(2)sql含有order by,order by 是要根据数据全局排序

(3)含有count、join 这种需要统计和关联其他表数据的sql

上述sql 在大数据查询是都是比较慢的,相教育一些只是简单的过滤查询场景

优化思路流程:

当然最后每天晚上要清除一下当天产生的所有临时表,避免表数据过多

非常遗憾的是Zeppelin Committer 认为这个功能可能会影响到项目的整体架构,而不进行合并,所以我在此进行阐述,详细设计和pr参考:https://github.com/apache/zeppelin/pull/4611


相关文章
|
分布式计算 自然语言处理 数据可视化
Zeppelin_功能| 学习笔记
快速学习 Zeppelin_功能
Zeppelin_功能| 学习笔记
|
分布式计算 Java 数据安全/隐私保护
Zeppelin_安装_配置| 学习笔记
快速学习 Zeppelin_安装_配置
Zeppelin_安装_配置| 学习笔记
|
分布式计算 Spark 关系型数据库
[Zeppelin]Zeppelin安装与初体验
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/72869094 1.
1897 0
|
10月前
|
SQL 分布式计算 数据可视化
Apache Zeppelin系列教程第一篇——安装和使用
Apache Zeppelin系列教程第一篇——安装和使用
471 0
|
10月前
|
算法 NoSQL Java
Apache Zeppelin系列教程第八篇——LRU算法在Apache Zeppelin中的应用
Apache Zeppelin系列教程第八篇——LRU算法在Apache Zeppelin中的应用
80 0
|
Java 大数据 Scala
Zeppelin源码
1.概述   在大数据应用场景中,处理数据分析方面,由于开发者的水平不一样,使用的编程语言也不尽相同,可能会涉及到R、Python、Java、Scala等,数据计算模型也估计不一样,可能涉及的有Spark、Hive、Flink、Kylin等等。
1653 0
|
10月前
|
Java Apache 网络架构
Apache Zeppelin系列教程第三篇——Note的持久化管理
Apache Zeppelin系列教程第三篇——Note的持久化管理
94 0
Zeppelin安装与配置
本文介绍zeppelin安装与配置指南
Zeppelin安装与配置
|
10月前
|
前端开发 Java Apache
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
108 0
|
存储 分布式计算 Hadoop
Hadoop快速入门——第二章、分布式集群(第三节、HDFS Shell的常用命令)
Hadoop快速入门——第二章、分布式集群(第三节、HDFS Shell的常用命令)
134 0
Hadoop快速入门——第二章、分布式集群(第三节、HDFS Shell的常用命令)

推荐镜像

更多