自定义博客皮肤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 1524 1

原创 Streaming Systems: Watermark

Watermark

2021-10-17 23:11:54 260

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

1.

2021-08-22 21:01:45 280

原创 Streaming Systems: Concept

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

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

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

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

2021-01-23 13:57:54 517

翻译 数据湖

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

2020-10-31 21:44:07 316

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

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

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

原创 数据算法:Bloom Filter

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

2020-08-29 23:59:14 650

原创 极简数据科学(上)

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

2020-07-26 00:39:22 311

翻译 动态表的持续查询

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

2020-07-06 23:35:15 497

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

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

2020-06-21 17:50:17 297

原创 Flink 调优:Checkpoint 问题排查

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

2020-05-24 14:48:01 3283

原创 Flink 调优:Checkpoint 配置

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

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

原创 Flink 调优:Slot and Parallelism

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

2020-04-07 00:14:42 1854

原创 数据算法: Bitmap

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

2020-03-14 21:49:17 556

原创 Flink 原理与实现:Savepoint

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

2020-03-01 01:22:15 938

原创 Flink 原理与实现:Checkpoint

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

2019-12-07 21:27:50 1619

原创 Flink 原理与实现:State

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

2019-11-29 22:27:35 1040

转载 【SparkSQL】聊一聊 Join

聊一聊 SparkSQL 的 3 种 Join

2019-09-30 20:19:25 158

转载 Intellij IDEA debug 模式

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

2019-09-22 16:36:44 731

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

基于信用的反压

2019-08-25 11:32:41 2006

原创 Huffman编码

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

2019-08-11 02:00:25 5085

翻译 流计算中的 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 2599

原创 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 1159

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

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

2019-06-15 14:51:34 12613

翻译 零拷贝

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

2019-06-08 23:15:03 3232

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

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

2019-04-07 12:55:55 765

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

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

2019-03-10 20:58:06 3233

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

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

2019-02-19 23:09:18 983

原创 Java 并发概述

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

2019-01-01 11:46:13 343

原创 Java 数据结构与集合

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

2018-11-15 23:01:22 2537

原创 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 1386

原创 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 668

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

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

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

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

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

2017-08-21 23:50:01 905

原创 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 1547

原创 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 716

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

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

2017-07-22 12:08:46 6963

原创 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 1070

原创 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 2394

Spark GraphX in Action

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

2018-11-03

Spring 5 Design Pattern

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

2018-10-27

Scala in Depth

本书把Scala中比较容易混淆的知识点整理出来,把容易犯的错误,容易踩的坑都列举了出来,并且本书也是Scala之父做序推荐的书。

2016-05-08

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

Learning.Spark(英文版)

Data in all domains is getting bigger. How can you work with it efficiently?This book introduces Apache Spark, the open source cluster computing system that makes data analytics fast to write and fast to run. With Spark,you can tackle big datasets quickly through simple APIs in Python, Java, and Scala.Written by the developers of Spark, this book will have data scientists andengineers up and running in no time.You’ll learn how to express parallel jobs with just a few lines of code, and cover applications from simple batch jobs to stream processing and machine learning.

2015-09-28

Spark Programming Guide

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

2015-08-15

eclipse使用教程

详细介绍了eclipse的使用方法,其中包括Eclipse简介,Eclipse platform,喜好设定(Preferences),java程序开发,除错,重构(Refactoring),要诀和技巧(Tips and Tricks)

2013-04-25

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

TA关注的人

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