Laurence的技术博客

// 风尘仆仆,终有归途

时间序列大数据平台建设经验谈

版权声明:本文由本人撰写并发表于2018年1月刊的《程序员》杂志,本文版权归《程序员》杂志所有,未经许可不得转载。 引言 在大数据的生态系统里,时间序列数据(Time Series Data,简称TSD)是很常见也是所占比例最大的一类数据,几乎出现在科学和工程的各个领域,一些常见的时间序列...

2018-02-07 10:37:25

阅读数 7038

评论数 4

命令模式:若只如“初见”

版权声明:本文由本人撰写并发表于InfoQ, 原文链接: http://www.infoq.com/cn/news/2018/01/Command-mode-if-only-first-see 似曾相识 最近在InfoQ上看到一篇谈论命令模式与CQRS架构的译文《From CQS to CQR...

2018-01-05 10:00:03

阅读数 484

评论数 0

从函数字面量发现函数式编程

版权声明:本文由本人撰写并发表于2015年3月下半月的《程序员》杂志,原文题目《从字面量发现函数式编程》,本文版权归《程序员》杂志所有,未经许可不得转载。 引言 我相信很多像我一样初次接触函数式编程的程序员来说,对于“函数字面量”这个概念会感到迷惑和不解。伴随着深入地学习,在清晰地理解了这个概...

2015-04-27 11:54:09

阅读数 8520

评论数 5

HBase高性能复杂条件查询引擎

版权声明:本文由本人撰写并发表于2014年7月份的InfoQ,HBase的PMC成员Ted Yu先生参与了审稿并于给予了肯定。该方案设计之初仅寄希望于通过二级索引提升查询性能,由于在前期架构时充分考虑了通用性以及对复杂条件的支持,在后来的演变中逐渐被剥离出来形成了一个通用的查询引擎。HBase在大...

2014-06-17 20:10:36

阅读数 38441

评论数 35

数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Shar...

2012-09-12 12:19:52

阅读数 63375

评论数 57

Spring基于ThreadLocal的“资源-事务”线程绑定设计的缘起

题目起的有些拗口了,简单说,这篇文章想要解释Spring为什么会选择使用ThreadLocal将资源和事务绑定到线程上,这背后有着什么样的起因和设计动机,通过分析帮助大家更清晰地认识Spring的线程绑定机制。本文原文链接:http://blog.csdn.net/bluishglc/articl...

2012-07-25 14:17:56

阅读数 24454

评论数 12

数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示

本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Shar...

2012-06-27 14:32:44

阅读数 166102

评论数 27

从MVC框架看MVC架构的设计

从MVC框架看MVC架构的设计尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。MVC回顾作为一种经典...

2011-08-16 09:57:37

阅读数 86559

评论数 85

领域驱动设计(Domain Driven Design)参考架构详解

领域驱动设计(Domain Driven Design)参考架构详解摘要本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。本文会对架构中一...

2011-08-12 11:33:02

阅读数 52314

评论数 12

提升小规模HDP集群的作业并行度

对于团队使用的一些小型的Hadoop集群来说,由于资源有限,团队成员又多,并行开发和测试又密集,很容易出现资源紧张,作业被pending无法执行的情况,最大化的配置集群作业的并行度是开发环境的集群所必须的。 1. Yarn Queue的作业分配粗策略 默认情况,Yarn作业的提交顺序使用FIFO...

2019-01-30 18:18:54

阅读数 69

评论数 0

Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法

Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法 问题 有这样一个问题是很常见的:如果我们的Hive使用默认使用Tez作为执行引擎,当我们使用IDE通过Hive JDBC连接时,会出现在一个很“有趣”的想象:即如果我们不断开这个JDBC连接,则在Yarn上会持续有有一个Tez的AM...

2019-01-30 15:31:09

阅读数 74

评论数 0

Spark SQL和Hive在处理日期/时间上的差异

注: 本文使用的环境是:Spark:2.2, Hive: 1.2.1 最近在编写一个SQL的过程中遇到了这样一个陷阱:为了便于工作,SQL的编写是通过一个SQL的IDE环境以Hive JDBC驱动的方式连接到HIVE上去执行的,SQL在HIVE上执行正常,有结果数据返回。但是SQL开发好在程序执行...

2018-12-27 12:05:22

阅读数 123

评论数 0

Kerberos笔记

本文以《Hadooop Security》等资料为基础,罗列关于Kerberos的一些重要内容的笔记。 文章目录Kerberos的基本思想没有Kerberos时,Hadoop是如何工作的?Kerberos概述1. Principal2. Realm3. KDC3.1 Kerberos数据库3.2...

2018-12-08 13:59:47

阅读数 87

评论数 0

数仓CUBE操作术语备忘

SLICE (切片) 将某一个(或多个)维度上的值锁定,只观察当这个维度取这个值时的情形,相当于将一个立方体做了一个切片。 DICE (切块) 将某一个(或多个)维度上的值固定在一个区间内,观察这个取值区间内cube的情形,相当于将一个立方体做了一个切块。 ROLL UP (上卷) 沿着某一个(...

2018-11-06 17:23:23

阅读数 180

评论数 0

Spark Structured Stream的流关联(Stream-Stream Joins)

自Spark 2.3开始,Spark Structured Streaming开始支持Stream-stream Joins。两个流之间的join与静态的数据集之间的join有一个很大的不同,那就是,对于流来说,在任意时刻,在join的两边(也就是两个流上),数据都是“不完全”的,当前流上的任何一...

2018-08-01 10:48:04

阅读数 793

评论数 1

Spark报java.util.NoSuchElementException: head of empty list错误的解决方法

如果在Spark Structured Streaming上使用了Arbitrary Stateful Operations, 也就是使用了mapGroupsWithState或flatMapGroupsWithState方法,而其中GroupState[S]的S又偏偏是一个自定义的类型,那么你就...

2018-07-25 18:33:48

阅读数 631

评论数 0

Spark Structured Streaming: 自维护(任意)状态流的“超时”(Timeout)问题

此“超时”非彼“超时” 在我们开始这篇文章之前,我们必须要先弄清除一下问题:为什么流的上的状态会有“超时”问题?超时机制是为什么样的业务场景而设计的?通常情形下,人们一种直白的想法是:某种状态在长时间没有得到来自新数据的更新时,我们可以认为这个状态是“超时”了,它应该不复存在了,应该永远的被移除...

2018-06-28 15:42:41

阅读数 581

评论数 0

Spark基于事件时间的“状态”流的深层分析 - withWatermark与mapGroupsWithState的关系

不管是基于watermark的窗口计算还是自维护的状态流,它们都是有状态的,watermark只是规定了数据进入“状态”(有资格参与状态计算)的条件,并没有(也不适合)声明状态的“退出”机制。对于watermark的窗口计算来说,它们的“退出”机制是:如果最近某个还处于active状态的窗口它的E...

2018-06-27 09:48:27

阅读数 841

评论数 0

Spark性能调优系列二:Spark流计算重要性能参数测试与分析

参数介绍 spark.scheduler.mode spark.streaming.concurrentJobs scheduler线程池 测试用例 Test Case Group 1: FIFO vs. FAIR Test Case 1-1: FIFO Test Case 1-2: F...

2018-06-21 09:39:41

阅读数 937

评论数 1

Spark性能调优系列一:Spark的作业模型

Job Spark的整个作业体系中,处于顶层的是Job, Job和Spark中的Action是一一对应的,每一个Action都会触发一个Job的执行,这个Job包含的处理逻辑是Action以及Action之前的所有Transformation, 所有这些逻辑会被Spark转换成一张关于RDD的D...

2018-06-11 16:12:44

阅读数 398

评论数 0

提示
确定要删除当前文章?
取消 删除