Cheney.Yin Blog

「To explore or exploit is a question.」

数字证书与cfssl工具链

分析数字证书原理,记录cfssl常用命令。

1 什么是根证书? 参考 根证书是证书颁发机构(CA)的公钥证书,是在公开密钥基础建设中,信任链的起点。根证书没有上层机构再为其本身作数字签名,所以都是自签证书。 2 X.509证书规范 参考 一般的,一个数字证书内容可能包括基本数据(版本、序列号)、所签名对象信息(签名算法类型、签发者信息、有效期、被签发人、签发的公开密钥)、CA 的数字签名等等。 目前使用最广泛的标准为 IT...

Graph easy工具

Graph easy是一种用于在Cli下的绘图工具

基本语法 graph-easy兼容graphviz语法 1 2 3 4 echo '[hello]<->[world]' | graph-easy +-------+ +-------+ | hello | <--> | world | +-------+ +-------+ 1 2 3 4 echo '[hello]<->[wo...

Spark Streaming乱序案例

分析因调度器配置引起的数据同步乱序

Spark Streaming RDD乱序 问题描述 Spark Streaming RDD乱序是指,在其开启公平调度的前提下,Spark Streaming周期性地提交Job,并且Job可并发执行。然而在严格的传输语义的要求下(如Exactly-Once),Spark Streaming需要向上游系统发送应答记录数据拉取进度,例如Kafka Consumer会向Kafka broker...

Spark Streaming

介绍Spark Streaming的基本概念和使用

Spark Streaming 概述 Spark Streaming是Spark Core API的扩展,它支持弹性的、高吞吐、容错的实时数据流的处理。数据可以通过多种数据源获取,例如Kafka、Flume、Kinesis以及TCP Sockets,也可以通过例如map、reduce、join、window等高阶函数组成的复杂算法处理。最终,处理后的数据可以输出到文件系统,数据库以及实时...

Spark资源调度

介绍Spark跨应用调度和应用内调度的相关概念和配置

概况 spark 具备几种计算资源的调度机制。首先,在集群模式下,每个Spark应用(SparkContext的实例)运行在一组独立的执行器(executor)进程中。Spark集群管理器提供了跨应用的调度机制。其次,在每个Spark应用中,如果多个job(Spark actions)被不同的线程提交,它们能够并发执行。 跨应用调度 运行在spark集群的应用,可以获得一组独立的exe...

Spark共享变量

介绍Spark共享变量的相关概念和使用方法

共享变量 通常情况下,一个传递给Spark操作(例如,map和reduce)的函数func是在远程的集群节点上执行的。该函数func在多个节点执行过程中使用的变量是同一个变量的多个副本。这些变量以副本的方式拷贝到每台机器上,并且各个远程机器上变量的更新并不会传播回driver program。通用且支持read-write的共享变量在任务间是不能胜任的。所以,Spark提供了两种特定类型的...

Spark RDD 3 --- 持久化

介绍RDD持久化的相关概念和配置

RDD持久化 Spark中一个很重要的能力是将数据持久化(或称为缓存),在多个操作间都可以访问这些持久化的数据。当持久化一个RDD时,每个节点的其它分区都可以访问这些持久化的数据,在该数据上的其它action操作将直接使用内存中的数据。这样会让以后的action操作计算速度加快(通常运行速度会加速10倍)。缓存是迭代算法和快速的交互式使用的重要工具。 RDD可以使用persist()方法...

Spark RDD 2 --- 操作

介绍RDD的Transformation、Action和Shuffle操作。

RDD操作 Spark RDD常见操作分为三类: Transformation、Action和Shuffle。 Transformations 转换操作 Transformation(转换) 含义 示例 map(func) 返回一个新的distributed dataset,它...

Spark RDD 1 --- 基础

介绍Spark RDD的相关概念和基本操作

RDD基础 Spark以弹性分布式数据集作为中心,RDD是容错、具备并且操作的元素集合。 创建RDD的两种方式: driver程序中,调用SparkContext.parallelize(). 从外部存储引入数据集。 并行集合 在spark-shell交互模式下,执行如下命令: 1 2 val distData = sc.parallelize(Array(1,2,4...