什么是 Flink?

 Apache Flink™ is an open source platform for distributed stream and batch data processing. Flink’s core is a streaming dataflow engine that provides data distribution, communication, and fault tolerance for distributed computations over data streams. Flink also builds batch processing on top of the streaming engine, overlaying native iteration support, managed memory, and program optimization.

核心组件布局

Apache Flink Stack

(图片来源:Apache Flink™ 官网)
阅读全文 »

Gradle 是什么?

 Gradle™ 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的 XML。当前其支持的语言限于 JavaGroovyScala,计划未来将支持更多的语言。 — wikipedia.org

特性

  • DSL 声明项目的配置,更加直观
  • 细粒度的传递依赖管理
  • 增量编译
  • 高效的内存执行
阅读全文 »

介绍 Linux 相关的命令、Shell 编程、实用技巧、优化实战和系统架构相关知识。
阅读全文 »

实用技巧

List

1
2
3
4
5
6
7
List(1, 9, 2, 4, 5) span (_ < 3)       // (List(1), List(9, 2, 4, 5))  碰到不符合就结束

List(1, 9, 2, 4, 5) partition (_ < 3) // (List(1, 2), List(9, 4, 5)) 扫描所有

List(1, 9, 2, 4, 5) splitAt 2 // (List(1, 9), List(2, 4, 5)) 以下标为分割点

List(1, 9, 2, 4, 5) groupBy (5 < _) // Map(false -> List(1, 2, 4, 5), true -> List(9)) 分割成 Map 对象,以 Boolean 类型为 Key

Iterator

grouped

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import scala.collection.{AbstractIterator, mutable}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.BigquerySparkSession._

val conf = new SparkConf()
val builder = SparkSession.builder().config(conf).enableHiveSupport()
val spark = builder.getOrCreateBigquerySparkSession()
val df = spark.sql("use db; select * from table")

val dataset = df.rdd.mapPartitions(iter => {

// 将每个 partition 中的多行数据,以 100 为长度作为一组,进行一次批处理
iter.grouped(100)
.flatMap(rows => {
val records = new mutable.MutableList[String]()
rows.foreach(row => records.add(JSON.toJSONString(row, false)))
records
})
})

val filteredEmptyLine = dataset
.filter(_ != null)
.map(JSON.toJSONString(_, false))
.filter(_.trim.length != 0)
阅读全文 »

介绍 Maven 工具的实用技巧,以及如何解决一些常见的问题,包括本地缓存、下载、编译、语法、依赖和相关插件等问题。
阅读全文 »