大数据计算
文章平均质量分 64
zzzzMing
这个作者很懒,什么都没留下…
展开
-
Hive使用Calcite CBO优化流程及SQL优化实战
文章目录Hive SQL执行流程Hive debug简单介绍Hive SQL执行流程Hive 使用Calcite优化Hive Calcite优化流程Hive Calcite使用细则Hive向Calcite提供元数据上一篇主要对Calcite的背景,技术特点,SQL的RBO和CBO等做了一个初步的介绍。深入浅出Calcite与SQL CBO(Cost-Based Optimizer)优化这一篇会从Hive入手,介绍Hive如何使用Calcite来优化自己的SQL,主要从源码的角度进行介绍。文末附有一篇其他原创 2020-09-22 19:32:40 · 1310 阅读 · 0 评论 -
docker,容器,编排,和基于容器的系统设计模式
文章目录从容器说起背景docker实现原理编排之争基于容器的分布式系统设计之道单节点协作模式Sidecar pattern(边车模式)Ambassador pattern(外交官模式)Adapter pattern(适配器模式)多节点协作模式都2020年了,容器,或者说docker容器这个概念,从事互联网行业的开发者应该都不会感到陌生。无论大厂还是小厂的应用部署现在都首选docker容器。但是docker虽好,却并非万能。docker本身,其实仅仅是提供了一种沙盒的机制,对不同应用进行隔离。镜像是它出彩原创 2020-08-10 20:50:17 · 485 阅读 · 0 评论 -
Spark SQL源码解析(五)SparkPlan准备和执行阶段
Spark SQL原理解析前言:Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述Spark SQL源码解析(二)Antlr4解析Sql并生成树Spark SQL源码解析(三)Analysis阶段分析Spark SQL源码解析(四)Optimization和Physical Planning阶段解析SparkPlan准备阶段介绍前面经过千辛万苦,终于生成可实际执行的SparkPlan(即PhysicalPlan)。但在真正执行前,还需要做一些准备工作,包括在必要的地方插入一些原创 2020-05-27 18:44:36 · 587 阅读 · 0 评论 -
Spark SQL源码解析(三)Analysis阶段分析
Spark SQL原理解析前言:Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述Spark SQL源码解析(二)Antlr4解析Sql并生成树Analysis阶段概述首先,这里需要引入一个新概念,前面介绍SQL parse阶段,会使用antlr4,将一条SQL语句解析成语法树,然后使用antlr4的访问者模式遍历生成语法树,也就是Logical Plan。但其实,SQ...原创 2020-04-28 18:09:41 · 513 阅读 · 0 评论 -
Windows上IDEA搭建最新Spark2.4.3源码调试的开发环境
相信很多同学都想通过阅读一些框架的源码,来提高自己的代码能力,但往往在第一步,搭建环境的时候就碰了壁。本篇就来介绍下如何在Windows下,将最新版的Spark2.4.3编译,并导入到IDEA编译器中。最后通过在IDEA运行Spark自带的一共Example代码结尾。1.搭建Spark源码环境所需准备搭建Spark源码环境所需要准备的一些东西需要先准备好。这里也有我踩过的一些坑,我也会一并介...原创 2019-08-28 18:29:13 · 955 阅读 · 0 评论 -
Spark 的“血液” --Spark RPC(一)简述
一. Spark rpc概述首先说明RPC,引用百度百科:RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。Spark RPC可以说 是 Spark 分布式集群的基础,若是将 Spark 类比为一个人的话,Spark R...原创 2019-01-09 20:56:32 · 315 阅读 · 0 评论 -
Spark RPC 框架源码分析(二)运行时序
前情提要:Spark RPC 框架源码分析(一)简述一. Spark RPC 概述概述上一篇我们已经说明了 Spark RPC 框架的一个简单例子,以及一些基本概念的说明。这一篇我们主要讲述其运行时序,从而揭露 Spark RPC 框架的运行原理。我们将分为两部分,分别从服务端和客户端来看。所用 spark 版本:spark 2.1.0二. Spark RPC 服务端我们以上一篇 ...原创 2019-01-14 21:37:20 · 393 阅读 · 0 评论 -
Spark RPC 框架源码分析(三)Spark 心跳机制分析
一. Spark 心跳概述前面两节中介绍了 Spark RPC 的基本知识,以及深入剖析了 Spark RPC 中一些源码的实现流程。具体可以看这里:Spark RPC 框架源码分析(二)运行时序Spark RPC 框架源码分析(一)简述这一节我们来看看一个 Spark RPC 中的运用实例 – Spark 的心跳机制。这次主要还是从代码的角度来看。我们首先要知道 Spark 的...原创 2019-01-17 20:42:47 · 628 阅读 · 2 评论 -
Spark 读取 Hbase 优化 --手动划分 region 提高并行数
一. Hbase 的 region我们先简单介绍下 Hbase 的 架构和 region :从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器,一台 HRegionServer 服务器上又可以有多个 Hregion(以下简称 region)。要读取一个数据的时候,首先要先找到存放这个数...原创 2018-12-15 11:32:06 · 624 阅读 · 0 评论 -
Spark SQL,如何将 DataFrame 转为 json 格式
今天主要介绍一下如何将 Spark dataframe 的数据转成 json 数据。用到的是 scala 提供的 json 处理的 api。用过 Spark SQL 应该知道,Spark dataframe 本身有提供一个 api 可以供我们将数据转成一个 JsonArray,我们可以在 spark-shell 里头举个栗子来看一下。import org.apache.spark.sql.Sp...原创 2018-12-06 20:09:23 · 1444 阅读 · 2 评论 -
从分治算法到 MapReduce
从分治算法说起要说 MapReduce 就不得不说分治算法,而分治算法其实说白了,就是四个字 分而治之 。其实就是将一个复杂的问题分解成多组相同或类似的子问题,对这些子问题再分,然后再分。直到最后的子问题可以简单得求解。要具体介绍分治算法,那就不得不说一个很经典的排序算法 – 归并排序。这里不说它的具体算法代码,只说明它的主要思想。而归并排序的思想正是分治思想。归并排序采用递归的方式,每次都...原创 2018-11-23 18:31:22 · 366 阅读 · 0 评论 -
Spark DataFrame 的 groupBy vs groupByKey
在使用 Spark SQL 的过程中,经常会用到 groupBy 这个函数进行一些统计工作。但是会发现除了 groupBy 外,还有一个 groupByKey(**注意RDD 也有一个 groupByKey,而这里的 groupByKey 是 DataFrame 的 **) 。这个 groupByKey 引起了我的好奇,那我们就到源码里面一探究竟吧。所用 spark 版本:spark 2.1.0...原创 2018-11-04 16:29:16 · 7787 阅读 · 0 评论 -
spark RDD,reduceByKey vs groupByKey
Spark 中有两个类似的api,分别是 reduceByKey 和 groupByKey 。这两个的功能类似,但底层实现却有些不同,那么为什么要这样设计呢?我们来从源码的角度分析一下。先看两者的调用顺序(都是使用默认的Partitioner,即defaultPartitioner)所用 spark 版本:spark 2.1.0先看reduceByKeyStep1 def redu...原创 2018-10-28 21:57:44 · 170 阅读 · 0 评论