原创 Flink分區策略

 目前Flink支持8種分區策略: GlobalPartitioner: 數據會被分發到下游算子的第一個實例中進行處理。 ShufflePartitioner :數據會被隨機分發到下游算子的每一個實例中進行。 RebalanceParti

原创 Flink 什麼情況下才會把 Operator chain 在一起形成算子鏈?

兩個 operator chain 在一起的的條件: 上下游的並行度一致 下游節點的入度爲 1 (也就是說下游節點沒有來自其他節點的輸入) 上下游節點都在同一個 slot group 中(Slot槽位共享) 下游節點的 chain

原创 Java深入淺出之HashMap

HashMap 是使用頻率最高的類型之一,同時也是面試經常被問到的問題之一,這是因爲 HashMap 的知識點有很多,同時它又屬於 Java 基礎知識的一部分,因此在面試中經常被問到。 HashMap 底層是如何實現的?在 JDK 1.8

原创 Java深入淺出之String

String 是如何實現的?它有哪些重要的方法? 以主流的 JDK 版本 1.8 來說,String 內部實際存儲結構爲 char 數組,源碼如下: public final class String     implements ja

原创 Java深入淺出之線程

線程基本介紹 線程(Thread)是併發編程的基礎,也是程序執行的最小單元,它依託進程而存在。一個進程中可以包含多個線程,多線程可以共享一塊內存空間和一組系統資源,因此線程之間的切換更加節省資源、更加輕量化,也因此被稱爲輕量級的進程。 線

原创 Spark深入淺出之常用Transformation算子功能概述

map(func):返回一個新的RDD,該RDD由每一個輸入元素經過func函數轉換後組成。 mapPartitions(func):類似於map,但獨立地在RDD的每一個分片上運行,因此在類型爲T的RD上運行時,func的函數類型必須是

原创 Spark深入淺出之Actor編程

package actor import akka.actor.{Actor, ActorSystem, Props} /** * 當繼承actor後,就是一個Actor,核心方法receive 方法重寫 */ class S

原创 Flink 是如何保證 Exactly-once語義的?

Flink 通過實現兩階段提交和狀態保存來實現端到端的一致性語義。 分爲以下幾個步驟: 開始事務(beginTransaction)創建一個臨時文件夾,來寫把數據寫入到這個文件夾裏面。 預提交(preCommit)將內存中緩存的數據寫入

原创 Flink 相比傳統的 Spark Streaming 區別?

這個問題是一個非常宏觀的問題,因爲兩個框架的不同點非常之多。但是在面試時有非 常重要的一點一定要回答出來:Flink 是標準的實時處理引擎,基於事件驅動。而 Spark Streaming 是微批(Micro-Batch)的模型。 下面

原创 Flink的序列化如果做的?

Java 本身自帶的序列化和反序列化的功能,但是輔助信息佔用空間比較大,在序列化對 象時記錄了過多的類信息。Apache Flink 摒棄了 Java 原生的序列化方法,以獨特的方式處理 數據類型和序列化,包含自己的類型描述符,泛型類型提

原创 Flink的內存管理是如何做的?

Flink並不是將大量對象存在堆上,而是將對象都序列化到一個預分配的內存塊上。此外,Flink大量的使用了堆外內存。如果需要處理的數據超出了內存限制,則會將部分數據 存儲到硬盤上。Flink 爲了直接操作二進制數據實現了自己的序列化框架。

原创 Flink淺談之JobManger、TaskManager

從集羣任務中剖析: JobManager 負責整個 Flink 集羣任務的調度以及資源的管理,從客戶端中獲取提交的應用,然後根據集羣中 TaskManager 上 TaskSlot 的使用情況,爲提交的應用分配相應的TaskSlot 資源

原创 Java深入淺出之JVM內存模型

一、虛擬機的發展 HotSpot VM(SUN)  以前使用範圍最廣的Java虛擬機 JRockit VM(BEA)   號稱”世界上最快的Java虛擬機” J9 VM(IBM) Dalvik VM( Google ) HotSpot V

原创 Scala加載外部配置文件速成教學,實時離線都可用。

廢話不多說,直接開幹。 一、配置文件創建及導出     src/resources/application.properties創建    將application.properties文件移到服務器或者本地。 二、文件配置讀取類編寫  

原创 Java集合框架常見面試

1.HashMap 和 ConcurrentHashMap 的區別  ConcurrentHashMap對整個桶數組進行了分割分段(Segment),然後在每一個分段上都用lock鎖進行保護,相對於HashTable的synchroniz