自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GatsbyNewton

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。

  • 博客(128)
  • 资源 (12)
  • 问答 (2)
  • 收藏
  • 关注

原创 Flink原理与实现:数据交换策略

数据交换策略(Data Exchange Strategy)定义了数据如何被分配到物理数据流图的 Task 中的。

2022-11-07 22:25:02 1647 1

原创 Streaming Systems: Watermark

Watermark

2021-10-17 23:11:54 287

原创 Streaming Systems: the What, Where, When and How of Data Processing

1.

2021-08-22 21:01:45 314

原创 Streaming Systems: Concept

流式数据处理在当今大数据领域是非常重要,这是有足够充分的理由的,如下:企业需要更及时地洞察他们的数据,而流式数据是实现更低延迟的一个好方法;现在商业中有海量无界的数据,使用为永不结束的数据设计的系统处理它们就更为容易;当数据一到达就进行处理,工作负载会随着时间推移更加均匀地分布,从而产生更一致和可预测的资源消耗。术语:Streaming 是什么?在讨论可能遇到的不同类型的数据时,精确的术语也是很有用的。通过两个重要且正交的维度对数据可以唯一确定——Cardinality(基数)和 Consti

2021-06-27 22:52:40 436 1

原创 5 分钟学会MySQL索引【漫画版】

同学分享了一个漫画版 MySQL 索引,我觉得挺有意思的。好东西当然要和大家分享啦,下面咱们就一起开始奇趣之旅吧!扫码关注公众号:冰山烈焰的黑板报

2021-01-23 13:57:54 580

翻译 数据湖

数据湖(Data Lake) 是这十年出现的一个术语,是大数据领域中数据分析流程的一个重要组成部分。它的思想是:为组织中的任何人可能需要分析的所有**原始数据(Raw Data)**提供一个存储。通常,人们使用 Hadoop 分析湖中的数据,但这个概念不仅限于 Hadoop。当我听到关于将组织要分析的所有数据集中在一起时,我立即想到的是数据仓库(Data Warehouse)和数据集市(Data Mart)(通常的区别是,数据集市用于组织中的单个部门,而数据仓库集成了所有部门。关于数据仓库应该是所有数据集

2020-10-31 21:44:07 349

翻译 Flink 调优:大规模状态数据集中的 Checkpoint 实战

Checkpoint 的配置对于 Flink 应用程序的性能和稳定性有这至关重要的影响,本文介绍大规模状态数据集中的 Checkpoint 实战。

2020-09-06 23:27:39 1788 1

原创 数据算法:Bloom Filter

Bloom Filter 是一种空间高效的概率型数据结构,不需要存储元素。同时,Bloom Filter 的缺陷也比较明显,它存在假阳性错误的误判,而且一般情况下无法删除元素。

2020-08-29 23:59:14 723

原创 极简数据科学(上)

数据科学使你能够将业务问题转换为研究项目,然后再将其转换为实际的解决方案。本文回答了数据科学是什么,数据科学为什么这么重要,数据科学具有的 5 个阶段的生命周期,数据科学包含的 5 个组成部分,以及数据科学具有 6 个环节的流程。

2020-07-26 00:39:22 339

翻译 动态表的持续查询

Flink 的关系 API 非常适合立即实施流分析应用程序,并且可以在多种生产环境中使用。在本文中,我们讨论了 Table API 和 SQL 的未来。

2020-07-06 23:35:15 529

原创 一文读懂一致性哈希算法

使用一致性哈希算法时,当发生增删服务器的时候,并不能彻底杜绝数据迁移,但是却可以有效地避免全量数据迁移。同时,一致性哈希算法使用虚拟节点可以解决热点问题。

2020-06-21 17:50:17 330

原创 Flink 调优:Checkpoint 问题排查

在使用 Flink 时, 我们基本都会用到 Checkpoint,也难免不会遇到 Checkpoint 慢或者失败等问题,本文介绍了 Checkpoint 问题排查的方法。

2020-05-24 14:48:01 3342

原创 Flink 调优:Checkpoint 配置

Checkpoint 是 Flink 的失败恢复机制,它的配置对于 Flink 应用程序的性能和稳定性有这至关重要的影响。

2020-05-04 11:02:01 7605 2

原创 Flink 调优:Slot and Parallelism

Flink 的并发度的设置直接影响应用程序的性能,本文介绍了应该如何设置并发度的方法。

2020-04-07 00:14:42 1922

原创 数据算法: Bitmap

本文介绍了 Bitmap 的原理,和在大数据处理中的应用案例,如,判重、定基、排序、压缩。以及在位图图像和数码相机中的应用。最后,用位运算的方式实现了 Bitmap。

2020-03-14 21:49:17 613

原创 Flink 原理与实现:Savepoint

在 Flink 原理与实现:Checkpoint 这篇文章中,我介绍了 Flink Checkpoint。Checkpoint 是 Flink 内置的失败恢复机制。SavepointSavepoint 是 Flink 的一个非常重要的特征,被 Flink PMC 誉为“瑞士军刀(Swiss Army knife)”。Savepoint 的实现算法和 Checkpoint 一样。但是,Savep...

2020-03-01 01:22:15 1004

原创 Flink 原理与实现:Checkpoint

本文尝试用图形化语言将抽象的 Checkpoint 具象化,阐述 Naive Consistent Checkpoint、Flink Checkpoint、Failure Recovery Mechanism、以及Performance of Checkpointing。

2019-12-07 21:27:50 1674

原创 Flink 原理与实现:State

本文尝试解释 State stream processing,从 Flink 的角度,阐述 State management 和 State repartition。

2019-11-29 22:27:35 1075

转载 【SparkSQL】聊一聊 Join

聊一聊 SparkSQL 的 3 种 Join

2019-09-30 20:19:25 198

转载 Intellij IDEA debug 模式

Debug模式是开发人员必会的一项调试程序的技能,用来追踪代码的运行流程,线上问题追踪,程序运行异常定位调试,以及在运行过程中参数的变化。IDEA的debug对于新手如何快速上手呢?一、基本介绍本篇文章是基于 IntelliJ IDEA 2018.1.6 版本,最新的版本 2018.2 已经出来了,支持 Java11,Debug 模式的图标设计虽有微调改动,但是功能大体相通。上图爬虫的图标...

2019-09-22 16:36:44 855

原创 Flink 原理与实现:再谈反压

基于信用的反压

2019-08-25 11:32:41 2047

原创 Huffman编码

霍夫曼压缩的思想是通过用较少的比特表示出现频率高的字符,用较多的比特表示出现频率低的字符,这样字符串所使用的总比特数就会降低。

2019-08-11 02:00:25 5336

翻译 流计算中的 Exactly Once 语义

在大数据领域,分布式事件流处理已经成为了热门话题。目前流行的流处理引擎包括 Apache Storm、Apache Flink、Heron、Apache Kafka(Kafka Streams)和 Apache Spark(Spark Streaming)。流处理引擎被广泛讨论的一个特性——Extractly-Once,很多引擎也已经宣称支持。然而,关于 Extractly-Once 是什么,当...

2019-07-13 16:28:12 2759

原创 Spring Boot 实践

Spring Boot 实战本文整理了 Spring Boot 各种使用技巧,以及继承第三方库的使用案例,可访问 spring boot 获取源码。后续文章会拆解每个使用案例。spring-boot-actuator:Spring Boot 集成 Actuator 进行健康检查。spring-boot-annotation-unified-exception:Spring Boot 统一异...

2019-06-22 22:31:16 1169

转载 Flink 原理与实现:如何处理反压问题

流处理系统需要能优雅地处理反压(backpressure)问题。反压通常产生于这样的场景:短时负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或者遇到大促或秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源耗尽甚至系统崩溃。目前主流的流处理系统 Storm/JStorm/Spark Streaming/...

2019-06-15 14:51:34 12818

翻译 零拷贝

用过 Kafka 的同学都知道它吞吐量很大,速度也快,但是 Kafka 是基于磁盘的,为什么还有这个可观的性能呢?本文就介绍一下其中一个技术——零拷贝。到目前为止,几乎每个人都听过 Linux 中所谓的零拷贝功能,但是我经常遇到对它不完全理解的人。基于此,我决定写一些文章深入探讨这个有用的功能。在这篇文章中,我们将从用户的角度讨论零拷贝,因此内核层次的细节将会省略。什么是零拷贝?为了更好地理...

2019-06-08 23:15:03 3348

翻译 Apache Flink 事件时间处理和 Watermarks

如果你正在搭建一个实时流程序,事件时间处理是你不久将不得不使用的一个功能之一。因为在现实世界中绝大多数用例的消息都是乱序的,你的系统应该有一个方法应对和处理可能延迟的消息。在这篇博客中,我们将会看到为什么我们需要事件时间处理和我们怎么在 Flink 中使用它。EvenTime 是一个事件在现实世界中发生时的时间。ProcessingTime 是该事件被 Flink 处理时的时间。为了理解事件时间...

2019-04-07 12:55:55 786

原创 线上故障排查(二)——高MEM占用

1. 高内存占用线上故障排查(一)——高CPU占用一文中介绍了高 CPU 占用程序的排查,今天我们介绍高MEM占用的程序。高内存占用的程序是指内存消耗比较大的程序。我们在开发 Java 应用程序的时候,一定见过 OOM(即 java.lang.OutOfMemoryError)。在 JVM 内存模型中,Java 虚拟机栈、本地方法栈、Java 堆、方法区(JDK8 之后是元空间,取消了永久代)都...

2019-03-10 20:58:06 3453

原创 线上故障排查(一)——高CPU占用

1. 计算密集型任务一般线上的任务会分为:计算密集型任务和IO密集型任务,其中计算密集型任务也叫做CPU密集型任务,是指CPU计算占主要的任务,CPU一直处于近乎满负荷状态。在公司中,一般服务器CPU占用率超过一定的阈值,就会有报警,这时候我们就不得不去排查自己的线上任务在哪个地方导致了CPU占用过高。今天我们就介绍一下线上应用高CPU占用的排查。2. 线上排查我这里主要介绍 Java 应...

2019-02-19 23:09:18 1007

原创 Java 并发概述

并发(Concurrency),是指在某个时间段内,多任务交替处理的能力。并行(Parallelism),是指同一时刻同时处理多任务的能力。在并发环境下,由于程序的封闭性被打破,出现了以下特点:并发程序之间有相互制约的关系。直接制约体现为一个程序需要另一个程序的计算结果;间接体现为多个程序竞争共享资源,如处理器、缓冲区等。并发程序的执行过程是断断续续的。程序需要记忆现场指令及执行点。当并...

2019-01-01 11:46:13 357

原创 Java 数据结构与集合

1. 集合图谱Java 集合图谱:1.1 List 集合List 集合是线性数据结构的主要实现,List 集合的遍历结果是稳定的。该体系最常用的是 ArrayList 和 LinkedList。ArrayList 是容量可以改变的非线程安全集合。内部实现使用数组进行存储,集合扩容时会创建更大的数组空间,把原有数据复制到新数组中。ArrayList 支持对元素的快速随机访问,但是插入与删除时...

2018-11-15 23:01:22 2590

原创 RMQ(Range Minimum Query)

RMQRMQ(Range Minimum Query) 是指区间最值查询,即对于长度为 $ n $ 的数列 $ A $,回答若干询问 $ RMQ(A, i, j), (i,j <= n) $,返回数列 $ A $中下标在 $ i, j $ 之间的最小/大值。如果用 $ f(n) $ 表示算法预处理时间复杂度,$ g(n) $ 表示算法的查询时间复杂度,那么 RMQ 的算法的复杂度是 $ \left

2017-09-17 15:12:28 1423

原创 MyBatis 笔记(五)——动态 SQL

在开发中,经常会遇到要执行的 SQL 语句其实并不是固定,而是随条件的变化而变化的。对于这种情况 MyBatis 也有解决方案。随条件变化的 SQL先看一个固定的 SQL 语句,查询指定 name 和 age 的人:<resultMap id="PersonMap" type="Person"> <id column="id" jdbcType="INTEGER" property=

2017-08-25 23:35:47 703

原创 MyBatis 笔记(四)——实体类属性和表字段的映射

之前的章节将的实体类属性名和表字段名都是相同的,MyBatis 会自动去映射。那么问题来了,如果实体类属性名和表字段名不相同时,MyBatis 能智能地去映射到吗?答案是:不能。这里用两种解决方案: 1. 在使用 SQL 语句的时候,为每个字段定义别名; 2. 使用 MyBatis 映射文件的 resultMap 标签。使用别名使用别名这个很容易理解,因为日常在写 SQL 语句时,通常会用到别名

2017-08-23 22:49:31 48509 2

原创 MyBatis 笔记(三)——优化配置

在之前的讲解中,不难发现 MyBatis 的配置有些笨重,这一节就讲 MyBatis 的配置优化。毫无疑问,主要是两方面: 1. 优化 MyBatis 基础配置文件。 2. 优化 MyBatis 映射文件。优化 MyBatis 基础配置文件在 MyBatis 基础配置文件中,之前的数据库配置都是在这个文件中完成的。实际上,数据库配置是可以抽出去的,如 db.properties:DRIVER=c

2017-08-21 23:50:01 918

原创 MyBatis 笔记(二)——XML vs 注解

MyBatis 支持注解和 XML 两种配置。这一节延续 MyBatis 笔记(一)继续讲。1. 基于 XML 的配置基于 XML 的配置其实和 MyBatis 笔记(一)几乎是一样的。先看最基础的配置文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//D

2017-08-19 23:06:23 1570

原创 MyBatis 笔记(一)——快速入门

简介MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。入门添加依赖在使用 Mybatis 的时候,需要添加数据库驱动包和 Mybatis 包,以 MySQL 为例,Maven 依赖:&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.my

2017-08-13 19:37:11 750

原创 Python定时任务调度——APScheduler

简介APScheduler 框架可以让用户定时执行或者周期性执行 Python 任务。既可以添加任务也可以删除任务,还可以将任务存储在数据库中。当 APScheduler 重启之后,还会继续执行之前设置的任务。 APScheduler 是跨平台的,注意 APScheduler 既不是守护进程也不是服务,更不是命令行程序。APScheduler 是进程内的调度器,也就是说它的实现原理是在进程内产生内

2017-07-22 12:08:46 7050

原创 shell 之 test 命令

1. test 命令test 命令提供了在 if-then 语句中测试不同条件的途径。如果 test 命令中列出的条件成立,test 命令就会退出并返回退出状态码0;如果条件不成立,test 命令就会退出并返回退出状态码1,这样 if-then 语句就会失效。test 命令的格式非常简单:test conditioncondition 是 test 命令要测试的一系列参数和值。当用在 if-then

2017-06-30 22:12:09 1109

原创 Maven分离配置、依赖

在用Maven打包项目时,要像Hadoop、Spark、Hive等项目打包之后的文件包含bin、lib、conf之类的文件夹,同时可以动态的修改项目的配置参数,需要如下两步:在 pom.xml 文件中引入 maven-assembly 插件;在 assembly.xml 文件中制定各个文件目录。pom.xml引入maven-assembly插件 org.apac

2017-02-25 15:34:05 2440

Spark GraphX in Action

介绍Spark GraphX 的书籍不多,这是一本专门详细讲解GraphX 的书籍

2018-11-03

Spring 5 Design Pattern

介绍Spring 5框架、新的特性、设计和使用到的设计模式

2018-10-27

Functional Programming in Java

这是一本介绍Java8新特性Lambda表达式的书,详细介绍了基于Java的函数式编程的技术。

2016-05-08

SBT in Action(SBT实战)

关于SBT的书籍很少,《SBT in Action》是一本详细介绍SBT使用的教程。

2016-03-24

Pro Apache Hadoop, 2nd Edition

Pro Apache Hadoop, 2nd Edition是最新介绍Hadoop2.x的资料

2015-12-26

MCL算法 马尔可夫聚类算法(英文)

文档对马尔可夫聚类算法进行了详细的描述,并且有图例进一步解释,易于理解。

2015-12-05

快学Scala(中文完整版)

本书以十分精简的文字向开发人员展示了Scala的能力和使用方法。本书中,国际畅销书《Java核心技术》的主要作者Cay S. Horstmann完全从实用角度出发,给出了一份快速的、基于代码的入门指南。

2015-09-30

Spark Programming Guide

该文档适合初步学习Spark的人使用,是中文文档,阅读方便。涵盖了Spark RDD的使用,Spark SQL,Spark MLlib,Spark Streaming,Spark GraphX。另外还有案例代码。

2015-08-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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