摘要: 本文主要介绍SparkSQL的优化器系统Catalyst,其设计思路基本都来自于传统型数据库,而且和大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等),因此通过本文的学习也可以基本了解所有其他SQL处理引擎的工作原理。 SQL优化器核心执行策略主 阅读全文
posted @ 2018-03-18 18:32 cjt1991 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 什么是Shuffle: Shuffle中文翻译为“洗牌”,需要Shuffle的关键原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。 Shuffle面临的问题: 1. 数据量非常大; 2 数据如何分类,及如何Partition,Hash、Sort、钨丝计划 3. 负载均衡(数据倾斜) 阅读全文
posted @ 2017-09-17 14:35 cjt1991 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 框架:框架类一般是调用我们写好的代码。(自己的代码属于被调用的) 工具类:我们写好的代码工具类的代码。(自己写的代码属于主动调用) 代理:为已经开发好的方法增加一些系统功能,例如:异常处理、日志、计算方法运行时间、事务管理等功能。 AOP:Aspect Oriented Program 安全、事务、 阅读全文
posted @ 2016-03-30 11:34 cjt1991 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1. 查询表的结构 select * from user_tab_columns where Table_Name='用户表'; select * from all_tab_columns where Table_Name='用户表'; select * from dba_tab_columns w 阅读全文
posted @ 2016-03-28 15:49 cjt1991 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 2. 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务是恢复和并发控制的基本单位 事务的ACID特性: 多事务执行方式 : (1)事务串行执行:每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行;不能充分利用系统资源,发挥数据库共享资 阅读全文
posted @ 2016-03-22 16:08 cjt1991 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1. 分治法 基本思想:将一个规模为n的问题分解为k个规模较小的子问题,这些字问题互相独立且与原问题相同。递归的解这些子问题,然后将各子问题的阶合并得到原问题的解。 eg: 二分搜索:给定已排序好的额n个元素,现在要在这n个元素中找出一特定元素x 归并排序 快速排序 2. 动态规划 动态规划与分治法 阅读全文
posted @ 2016-03-17 14:38 cjt1991 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1. top K问题:在海量数据中找出出现频率最高的前K个数、或从海量数据中找出最大的前K个数,这类问题统称为top K问题。 针对top K类问题,通常比较好的方式是分治+hash+小顶堆 eg:在1亿个浮点数中找出其中最大的10000个。 方法一:排序取出前10000个。  每个float占4B 阅读全文
posted @ 2016-03-13 12:22 cjt1991 阅读(416) 评论(0) 推荐(0) 编辑
摘要: HashMap和HashTable都采用了hash法进行索引HashMap允许键值为空(但只允许一条为空),而HashTable不允许。HashMap是非线程安全的,而HashTable是线程安全的。HashMap使用Iterator,HashTable使用Enumerationhash值使用不同, 阅读全文
posted @ 2016-03-11 11:00 cjt1991 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 静态查找表:只做查找操作的查找表 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。 如果查找的数据集是有序线性表,并且是顺序存储的,查找可以使用折半、插值、斐波那契等查找算法,因为有序,在插入和删除操作上,就需要耗费大量的时间。 二叉排序树 定义: 阅读全文
posted @ 2016-03-10 22:36 cjt1991 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 反射机制: * getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关 阅读全文
posted @ 2016-03-09 22:16 cjt1991 阅读(182) 评论(0) 推荐(0) 编辑