Danner Blog

Took the sourest lemon that life has to offer and turned it into something resembling lemonade.

Spark SQL 优化

一条 SQL 的执行顺序想必大家都了解: from join:数据源 where:指定条件对记录筛选 group by:数据分组 聚合函数计算 having:条件筛选,与 group by 搭配使用 计算表达式 select 字段 order by:结果集排序 (8)SELECT (9) DISTINCT (11) <TOP_specificat...

Flink+Kafka 实现原理

本节深入源码去理解 Flink + Kafka 实现 Exactly Once ( At Least Once 只是 barrier 无需对齐)的原理。相对于 Spark 而言, Flink 的 state 是很大亮点。Flink 可以将算子的每一步状态都记录下来,然后通过 checkpoint 持久化。当程序异常退出或者升级时,可以通 checkpoint 恢复到以前的状态继续运行。这里...

MySQL 建表规划

id 第一个字段必须是 id 自增长 主键 只有一个主键 ==> id,但针对具体业务可以对其他列增加约束项 time 表中建议是有 createTime 和 updateTime 字段 业务字段加注释 指定底层引擎 InnoDB...

Linux 命令

grep grep 命令肯定经常使用,可以去模糊查询字符串。但还有个功能就是输出当前字符串的前后几行,对于在日志中查error 时效果很好 cat nohup.out | grep -A 10 error # 后10行 cat nohup.out | grep -B 10 error # 前10行 cat nohup.out |grep -C 5 error # 前后各5行 ...

Spark 作业执行流程

本文是接着 spark-shell 脚本剖析,上文描述作业最终是通过 org.apache.spark.deploy.SparkSubmit 提交任务。那么这次就来看看具体的执行流程。 选择集群 // org.apache.spark.deploy.SparkSubmit override def main(args: Array[String]): Unit = { val ...

Java GC

JVM 内存模型如上所示,分为年轻代 (Young) 和老年代 (Old),年轻代又分为Eden 和 Survivior( s0+s1 ) 刚 new 出来的对象是存放在 Eden 区, 第一次 GC:扫描 Eden ,把活的对象 移动到 s0 区 第二次 GC:扫描 Eden + s0,把活的对象移动到 s1 区 第三次 GC:扫描 Eden + s1,把活的对象移动到 s0 ...

Java 源码:数据结构 Map

HashMap HashMap 底层的数据结构主要是:数组 + 单链表 + 红黑树;其中当链表的长度大于等于8时,并且整个数组大小大于64,链表会转化成红黑树,当红黑树大小小于等于6时,红黑树会转化成链表。 底层是 Node 数组 + 链表/红黑数,键值hash 后按位与上(数组长度 - 1) 就是数组序列号, key 可为空。HashMap 的存储过程: key ...

初识 HBase(二)

在上一节 大致了解 HBase 框架,本节补充知识点。 HLog:Write Ahead Log,预写日志(节点上所有region 的写操作) memstore:先写 HLog,再写memStore 超过阈值会 flush 成一个 storeFile(flush 影响性能) 当 storeFile文件数量增加到一定阈值,会触发 compact...

MySQL 主从

生产中会做主从架构实现读写分离从而减轻 MySQL 压力,简单架构图如下 主从复制主要靠三个线程来实现 Master Binlog dump thread:响应 Slave I/O 并发送 Binlog 二进制内存;在一主多从模式下,会为每个 Slave I/O thread 创建 Binlog dump thread Slave I/O thread:当执行 start ...

NUMA

非统一内存访问架构(Non-uniform memory access,简称 NUMA)是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置 。举个简单的例子: 比如一台机器是有 2 个处理器,有4个内存块。我们将1个处理器和两个内存块合起来,称为一个 NUMA node,这样这个机器就会有两个 NUMA node。在物理分布上,NUMA node 内的处理器和内存...