原创 ClassNotFoundException、NoSuchMethodException?

背景/吐槽:公司的雲平臺架構部門提供了一個spark鏈接hbase的工具包,但是其中包含的依賴太多太多,對外提供的jar包一個包居然接近90M,然後引用進來之後問題就很容易一不小心就和本地自己依賴的jar包產生衝突,真的是坑嗷,由

原创 五月份Spark源碼個人專欄計劃解決疑問

  由於當前公司項目組比較閒,已經要提離職準備進新公司了,這個月很閒,計劃這個月的時間進一步研究Spark源碼,第一步暫時先梳理部分最近面試過程中文到的關於任務管理模塊的問題,這些問題是自己思考拓展開來的一些問題,帶着這些問題去深入源

原创 數據庫事務的四大特性&事務隔離級別介紹

事務概念:事務是指的滿足ACID特性的一系列操作。 四大特性(ACID)介紹如下: 原子性(Atomicity): 事務被視爲不可分割的最小單元,要麼全部提交成功,要不都失敗回滾到最初狀態。 一致性(Consistency):一般的

原创 Java四種線程池原理&應用分析

線程池種類 線程池的實現分爲四類: Executors.newCachedThreadPool() Executors.newFixedThreadPool(int size) Executors.newScheduledThread

原创 zookeeper基本概念

1. 什麼是ZooKeeper ZooKeeper是一種高可用的一致性協調框架,可以理解爲一個輕量級的分佈式內存文件系統,它內部使用ZAB協議作爲一致性算法。它的內部提供了多層級的節點名空間(稱爲znode),客戶端可以對znode進

原创 Spark Streaming window函數源碼解析

概述   首先,對於window函數的作用可以參考官網介紹,不過官網只是對使用進行了簡單的介紹,而對於內部如何實現我們今天想來進行一探究竟!因爲只是個人也只是簡單的用過,但是依據之前看Spark Streaming實現相關的源碼,個人

原创 ThreadLocal原理

參考:https://juejin.im/post/5a5efb1b518825732b19dca4   ThreadLocal用於提供線程級的全局變量,所謂線程級的全局變量意思就是這個變量只在當前線程內部是任意位置都可以獲取到的,所

原创 ArrayList源碼分析

  本系列的所有源碼主要是針對JDK 1.8的版本來探討,部分容器源碼在1.7和1.8又較大變動(例如HashMap)纔會進行對比。   首先我們來看一下ArrayList的類圖結構:   其中Cloneable、Serializa

原创 Java內存模型和物理架構詳解

1. 概述   我們常說的Java虛擬機具有很好的跨平臺性,之所以強調所謂的跨平臺性是因爲不同的系統底層架構是會有區別的,而Java虛擬機的跨平臺性就是它幫助我們把不同系統的底層區別給KO掉了,使得我們通過Java虛擬機編寫的代碼可以

原创 CountDownLatch和join的區別

  螞蟻一面被問到這個問題,當時實在是想不到兩者在實現相同功能時的區別,回來百度了一下,發現其實還是蠻簡單的問題哈。   首先,兩者都能夠實現阻塞線程等待完成後,再繼續進行後續邏輯,對於兩者相同的功能這裏不再贅述,我們直接說說它們之間

原创 Redis內存優化の內存淘汰策略

  公司服務由於實時計算跨度過大,前文說過需要用redis來進行狀態管理,暫未發現一種數據修改但是不改變expire時間的做法,所以記錄的數據全部未設置過期時間,計劃通過腳本和一個大key來每天凌晨對redis前一天的狀態數據進行清理

原创 Spark yarn-client和yarn-cluster的區別

  之前面試遇到過一次這個問題,回答的很不好,這次專門記錄下來,進行深入的解析兩者區別。   首先,最簡單也十分淺顯的一種說法是: yarn-cluster是用於生產環境,這種模式下客戶端client在提交了任務以後,任務就託管給y

原创 Spark Core DAG生成源碼分析

前提回顧   之前分析了Spark Streaming關於DAG的生成,對於Spark Streaming而言,先是通過自己代碼中的各種transform方法來構造各個DStream之間的關聯關係,然後再通過最後調用action操作的

原创 聊一聊Spark資源動態分配

1. 提出問題   相信很多面試也會問道類似的問題,那麼這篇文章就是要圍繞這個問題來進行展開進行分析Spark的資源動態分配。   通常我們在通過spark-submit提交Spark應用到yarn集羣的時候,都會配置num-exec

原创 Spark Streaming + Kafka + Redis狀態管理 top100場景 Exactly Once

  最近面試螞蟻金服一面的時候,和面試官聊項目問題的時候,發現我這邊業務實現的top100場景好像沒有實現exactly once語義,我們項目的offset是存儲在zk中,然後業務處理完畢後,最後再提交offset更新到zk,這種時