- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 Spark SQL调优案例:单字段NOT IN子查询优化
背景 有如下的数据查询场景。 表结构 create table order (order_id long, customer_id long) partitioned by (date string); 要查询当天有订单,但是前一天没有订单的用户在当天的订单记录。 数据分析的同事编写的最初版本的SQL如下 select * from order where date='2021-07-17' and customer_id not in ( select customer_id fr
2021-07-17 21:07:24
3015
2
原创 Sqoop源码浅析
前言Apache Sqoop应该是在hadoop与SQL间上最常用的数据导入导出工具了。最近应为面试,简单看了一下sqoop 1.4.6的源码,整理如下。驱动类——Sqooporg.apache.sqoop.Sqoop是sqoop工具的启动类。 主要作用: 解析命令行传入的参数 根据参数调用相应的SqoopTool 工具类——SqoopToolorg.apache.sqoop.Sqoop.Sqoo
2016-07-10 20:37:26
6048
1
原创 java.util.concurrent.ThreadPoolExecutor实现机制简介
java.util.concurrent.ThreadPoolExecutor实现机制简介前言最近面试的时候被问到『如何实现一个线程池』的问题。当时没回答上来。 今天看了一下JDK源码,大概了解了一下java.util.concurrent.ThreadPoolExecutor的实现方式,整理如下。思路根据javadoc中关于ThreadPoolExecutor类的描述可知。ThreadPoolE
2016-06-29 12:49:58
10581
原创 Stop Spark Streaming On YARN Gracefully
一、问题 在YARN上停止Spark Streaming的方式比较粗暴“yarn application -kill [applicationId]”。 命令执行后,YARN在分配给Streaming App的container上执行“kill -15”命令结束进程,不会考虑Streaming App的执行情况。 虽然spark-yarn的ApplicationMaster在启动时加入了sh
2015-11-18 10:26:56
2142
原创 HashMap的数据结构
数据结构 transient Entry[] table = (Entry[]) EMPTY_TABLE; table中的每一个元素是一个链表的头结点,这些链表称为bucket size——HashMap包含的entry个数 threshold——触发HashMap.resize的阈值 PUT 通过 int hash = hash(key
2015-09-01 20:03:52
928
原创 从有序队列构造平衡二叉树
瞎写的,随便看看 # coding:utf-8 ''' Created on 2015年7月27日 @author: "zhouyifan" ''' import sys class Tree(object): def construct_from_array(self, a, root_node): parent_index = self.get_pa
2015-07-27 15:16:06
700
原创 Hive IN子句功能梳理
Hive 0.13.0之前的IN clause中只能包含常量: SELECT a.key,a.value FROM a WHERE a.key in (SELECT b.key FROM b) Hive 0.13.0实现了IN子句中的uncorrelated subquery: SELECT a.key, a.value FROM a WHERE a.key in (1,
2015-07-21 11:04:13
2853
原创 Spark 1.2.1有关writeAheadLog的官方文档的一个错误
阅读Spark 1.2.1的源码时发现官方文档的一处错误。 [Experimental in Spark 1.2] Configuring write ahead logs - In Spark 1.2, we have introduced a new experimental feature of write ahead logs for achieving strong fault
2015-06-19 09:37:03
620
原创 Spark Streaming + Flume 相关源码阅读
照搬Spark Streaming + Flume Integration Guide的例子搭建了Pull-based Approach using a Custom Sink的流式计算例子。 结果spark端输出的全是"Received 0(其实也不全是0,只是一秒一条记录,大部分都是0,所以没注意到不为零的记录) 当时很纠结,只能一行一行源码的看。现在总算对这个Pull-based
2015-05-28 11:06:47
668
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅