Ink's Blog

Less is more

Spark 部署要点

写完一个 Spark 应用程序以后,如何把它部署到集群上运行呢,这个部署的过程是怎样的呢,这里我主要以 Yarn 集群为主来讲解。 基本术语让我们先了解一下 Spark 中常用的一些基本术语: 术语 含义 Application 用户创建的 Spark 应用,会在集群中形成 driver 进程和 executor 进程。 Application jar 包含用户 Spa......

Designing Data-Intensive Applications 读书笔记(II)

数据模型和查询语言

...

ReentrantReadWriteLock 使用

ReentrantReadWriteLock 提供了读写锁机制可以方便我们更好实现并发场景,首先明确读写锁地特征:读锁与读锁不互斥,写锁与读锁互斥,写锁与写锁互斥。 依据此,我们就可以应用在这样地场景下:如果多个线程可以并行跑,那么我们就可以给它们都分配读锁;如果某个线程必须阻塞其他所有线程开跑,那我们就给它设置写锁。 用一个例子来讲解一下,现在共有四个线程,其中三个可以并行跑,一个必须阻塞......

SBT 那些常用的功能

使用 Scala 也很久了,SBT 是最方便的构建工具,但是总是会遇到一些 SBT 引起的奇奇怪怪的问题,今天就好好研究一下 SBT 的常见用法,争取通过本文跨过大部分的坑。 SBT 常见命令clean:移除 target 文件夹下生成的所有文件。 compile:编译 src/main/scala,src/main/java 和项目根目录下的文件。 run:编译代码然后运行项目中的 m......

Apache Calcite 学习

背景Apache Calcite 是一个动态数据管理框架,它包含很多传统数据库具有的组件,但是省略了一些核心功能,如:数据存储、处理数据的算法和存储元数据的仓库。 Calcite 故意剥离出存储和处理数据的业务逻辑,仅仅作为应用和其他数据存储系统的媒介,可以更加容易的创建一个自己的数据库,你所需要做的就是添加数据。 为了解释地更加直观,让我们创建一个 Calcite 的实例然后往里面加一些数......

Spark Streaming 集成 AWS Kinesis

关于 AWS Kinesis 的基本信息可以看我的这篇文章:使用 AWS Kinesis 收集流数据,本文主要讲解 Spark Streaming 如何集成 Kinesis 处理流数据。 配置 Spark Streaming 应用Spark Streaming 集成 Kinesis 的主要代码如下: import org.apache.spark.storage.StorageLevel......

Spark Streaming 常见操作

DStream 的转换操作与 RDD 的差不多,简单的像是 map,flatMap,repartition 我们就不讲了,我们讲几个关键特殊的。 DStream 的转换操作UpdateStateByKey 操作顾名思义,UpdateStateByKey 转换允许你在每个批次都可以对每个键更新他们的状态,至于这个 “状态” 到底是什么,就由我们自己定了,所以首先需要定义两个元素: 定义一......

Spark Streaming Checkpoint

一个 Streaming 应用是一个 007 特工,需要保证 7 * 24 小时的持久运转,因此容错性就极其重要,Spark Streaming 通过在一个具有容错性的存储系统如 HDFS 中设置一些检查信息来从错误中恢复。 什么情况下需要设置 checkpoint?首先我们看一下哪些数据会被 checkpoint,主要有两种类型的数据: 元数据:将定义 Streaming 应用如何计......

Spark Streaming 初见

本文内容是对 Spark Streaming 官方文档的总结,用一个简单的例子来入门 Spark Streaming。 Spark Streaming 是用来处理实时流数据的,所以必然有一个输入和一个输出: Spark Streaming 的内部实现其实还是 Spark core,将接收到的实时流数据分成一个一个很小的批数据进行处理: Spark Streaming 基本的数据结构是......

Scala 的矩阵运算

本文讲解 Scala 中进行矩阵运算的包 breeze 的一些基础操作。 Breeze 是 Scala 中用于线性代数相关数值运算的开源库。 安装首先我们使用 SBT 导入: libraryDependencies ++= Seq( // Last stable release "org.scalanlp" %% "breeze" % &qu......