Hive on Spark 和 Spark sql on Hive,你能分的清楚么
Hive on Spark 和 Spark sql on Hive,你能分的清楚么结构上 Hive On Spark 和 SparkSQL 都是一个翻译层,把一个 SQL 翻译成分布式可执行的 Spark 程序。Hive 和 SparkSQL 都不负责计算。Hive 的默认执行引擎是 mr,还可以运行在 Spark 和 Tez。Spark 可以连接多种数据源,然后使用 SparkSQL 来执行分布
Java 中的异常处理机制
Java 中的异常处理机制 本篇文章主要介绍了 Java 中的异常如何处理函数抛出的异常处理异常的原则异常处理时,性能开销大的地方 Java 语言在设计之初就提供了相对完善的异常处理机制。我们首先介绍一下 Java 中的异常。 介绍 Java 中的异常异常是程序在运行过程中出现的程序异常事件,异常会中断正在执行的正常指令流 。Java 中的异常分为两大类:Exception 和 E
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。 各种知识表象看杂乱无章,若只是学习繁杂知识点,固然自己的知识面是有限的,并且遇到问题的应变能力也很难提高。所以有些高手看起来似乎无所不知,不论谈论起什么技术,都能头头是道,其实并不是他们学习
理解 virt、res、shr 之间的关系(linux 系统篇)
理解 virt、res、shr 之间的关系(linux 系统篇)前言 想必在 linux 上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题 —— 你的程序在运行时占用了多少内存(物理内存)? 通常我们可以通过 top 命令查看进程占用了多少内存。这里我们可以看到 VIRT、RES 和 SHR 三个重要的指标,他们分别代表什么意思呢? 这是本文需要跟大家一起探讨的问题。当然
输入的查询 SQL 语句,是如何执行的?
输入的查询 SQL 语句,是如何执行的?执行如下 SQL,我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。 select * from where id ='1'; 上图给出的是 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。大体来说,MySQL 可以分为 Serve
教你如何将二进制文件导入到数据库
教你如何将二进制文件导入到数据库1.1 现网业务场景源数据推送二进制流 —> 解析二进制 —> 解析后的数据导入数据库 为了模拟生产的业务场景,客户提供了一个二进制文件及二进制文件的解析程序,需要我们解析二进制文件后导入数据库。 1.2 测试方案由于客户给出的解析程序是单条解析,为了提升数据导入的性能,需要微批导入的方式,在内存中积攒一定量的数据后,再调用 copymanager
5 步教你将 MRS 数据导入 DWS
5 步教你将 MRS 数据导入 DWSMapReduce 服务(MapReduce Service,简称 MRS)是一个基于开源 Hadoop 生态环境而运行的大数据集群,对外提供大容量数据的存储和分析能力,可解决用户的数据存储和处理需求。用户可以将海量业务数据,存储在 MRS 的分析集群,即使用 Hive/Spark 组件保存。Hive/Spark 的数据文件则保存在 HDFS 中。GaussD
容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群
容器化 | 在 Kubernetes 上部署 RadonDB MySQL 集群RadonDB MySQL 是一款基于 MySQL 的开源、高可用、云原生集群解决方案。支持一主多从高可用架构,并具备安全、自动备份、监控告警、自动扩容等全套管理功能。目前已经在生产环境中大规模的使用,包含银行、保险、传统大企业等。 RadonDB MySQL Kubernetes 支持在 Kubernetes 上安装
工具 | 常用 MySQL 内核 Debug 技巧
工具 | 常用 MySQL 内核 Debug 技巧掌握 MySQL 内核源码的阅读和调试能力,不仅是数据库研发人员的日常,也是 DBA 进阶的必经之路。 阅读本文你将了解: 如何准备 MySQL 调试环境GDB 调试入门及操作示例Trace 文件调试及操作示例 | 一、准备 Debug 环境首先用源码编译安装一个用来调试的 MySQL 环境。 开启 -DWITH_DEBUG ,在源码路径创
详谈 MySQL 8.0 原子 DDL 原理
详谈 MySQL 8.0 原子 DDL 原理背景MySQL 5.7 的字典信息保存在非事务表中,并且存放在不同的文件中(.FRM,.PAR,.OPT,.TRN,.TRG 等)。所有 DDL 操作都不是 Crash Safe,而且对于组合 DDL(ALTER 多个表)会出现有的成功有的失败的情况,而不是总体失败。这样主从复制就出现了问题,也导致基于复制的高可用系统不再安全。 MySQL 8.0 推
天天写 SQL,这些神奇的特性你知道吗?
天天写 SQL,这些神奇的特性你知道吗?一 SQL 的第一个神奇特性日常开发我们经常会对表进行聚合查询操作,但只能在 SELECT 子句中写下面 3 种内容:通过 GROUP BY 子句指定的聚合键、聚合函数(SUM 、AVG 等)、常量,不懂没关系我们来看个例子 听我解释有学生班级表(tbl_student_class) 以及数据如下 DROP TABLE IF EXISTS tbl_stu
Java 垃圾回收机制
面试必问:Java 垃圾回收机制介绍 在 C/C++ 中,程序员负责对象的创建和销毁。通常程序员会忽略无用对象的销毁。由于这种疏忽,在某些时候,为了创建新对象,可能没有足够的内存可用,整个程序将异常终止,导致 OutOfMemoryErrors。但是在 Java 中,程序员不需要关心所有不再使用的对象。垃圾回收机制自动销毁这些对象。垃圾回收机制是守护线程的最佳示例,因为它始终在后台运行。垃圾回收
一文了解 Java 中的构造器
一文了解 Java 中的构造器C ++ 引入了构造器(constructor,也叫构造函数)的概念,它是在创建对象时被自动调用的特殊方法。 Java 也采用了构造器,并且还提供了一个垃圾收集器(garbage collector),当不再使用内存资源的时候,垃圾收集器会自动将其释放。 构造器定义在 Java 中,可以通过编写构造器来确保每个对象的初始化。但是这里有两个问题: 这个构造器使
内存问题难定位,那是因为你没用 ASAN
内存问题难定位,那是因为你没用 ASAN1. 什么是 ASANASAN 全称:Address Sanitizer,google 发明的一种内存地址错误检查器。目前已经被集成到各大编译器中。 2. 为什么我们需要 ASAN在 c/c++ 开发过程中,经常出现内存异常使用的问题,比如踩内存,被踩的内存如果未被使用对外无影响。而一旦使用了被踩的内存,可能会出现进程 core,死循环,进入异常分支等等各
数据库系统设计:分区
数据库系统设计:分区术语澄清分区 (partition),对应 MongoDB、ES 中的 shard,HBase 的 Region,Bigtable 的 tablet,Cassandra 的 vnode,Couchbase 的 vBucket。但分区 (partitioning) 是最普遍的。 定义每条数据(或每条记录,每行或每个文档)属于且仅属于某特定分区。每个分区都能视为一个完整小型数据库
明明加了唯一索引,为什么还是产生了重复数据?
明明加了唯一索引,为什么还是产生了重复数据?前言前段时间我踩过一个坑:在 mysql8 的一张 innodb 引擎的表中,加了唯一索引,但最后发现数据竟然还是重复了。 到底怎么回事呢? 本文通过一次踩坑经历,聊聊唯一索引,一些有意思的知识点。 1. 还原问题现场前段时间,为了防止商品组产生重复的数据,我专门加了一张防重表。 如果大家对防重表,比较感兴趣,可以看看我的另一篇文章 《高并发
Redis 存储对象信息是用 Hash 还是 String
Redis 存储对象信息是用 Hash 还是 StringRedis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(String)、链表(List)、哈希结构(Hash)、集合(Set)、有序集合(Sorted set)。日常工作中我们存储对象信息的时候,一般有
一文读懂浏览器存储与缓存机制
一文读懂浏览器存储与缓存机制浏览器存储CookieCookie 是 HTTP 协议的一种无状态协议。当请求服务器时,HTTP 请求都需要携带 Cookie,用来验证用户身份。Cookie 由服务端生成,存储在客户端,用来维持状态。通常 Cookie 由以下值构成: 名称(name) 值(value) 域(Domain) 值(value) 路径(Path) 失效时间(Expiers/Max-Age)
重写数组的方法(改变原数组)
重写数组的方法(改变原数组)下图是我自我学习模拟数组时总结的一些重新数组的方法:本文我们暂不讨论不改变原数组的方法,只谈改变原数组用到的 6 种方法。改变原数组的方法push()按参数顺序向数组尾部添加元素,返回新数组的长度var color = ['red', 'green']var color2 = color2.push(['blue',
Golang 常见设计模式之装饰模式
# Golang 常见设计模式之装饰模式想必只要是熟悉 Python 的同学对装饰模式一定不会陌生,这类 Python 从语法上原生支持的装饰器,大大提高了装饰模式在 Python 中的应用。尽管 Go 语言中装饰模式没有 Python 中应用的那么广泛,但是它也有其独到的地方。接下来就一起看下装饰模式在 Go 语言中的应用。### 简单装饰器我们通过一个简单的例子来看一下装饰器的简单应用,首先编