原创 深入理解ClassLoader工作機制

前言 ClassLoader類加載器可以說是Java中必學內容之一,無論是想要去研究Concurrent包、Unsafe,還是深入學習Spark等分佈式計算框架,都必須對此有一定的理解。筆者在寫之前也只瞭解了皮毛,想通過這篇文章,結合

原创 初探JVM原理與結構

前言 這篇文章是JVM的掃盲篇,通俗易懂,對不清楚ClassLoader、Garbage Collection的可以有個大致的瞭解。 HelloWorld 在還是小白階段的時候,我們都會寫一個HelloWorld.java,然後執行j

原创 阿里雲分佈式調度系統-伏羲

最近在做一個類似的東西,看了一篇講FuxiSort的paper,就去詳細學習了下。 paper鏈接: 鏈接: https://pan.baidu.com/s/1H9GdDd7lgcgWkw0tkC95Jw 提取碼: gix8 下文作

原创 Google Protobuf : protocol buffers

Github https://github.com/protocolbuffers/protobuf 深入 ProtoBuf - 簡介 https://www.jianshu.com/p/a24c88c0526a 深入 ProtoBu

原创 Java基礎 BlockingQueue阻塞隊列彙總

BlockingQueue彙總: 1、概念總覽與介紹 https://www.cnblogs.com/duanxz/p/3400003.html   2、LinkedTransferQueue https://www.cnblogs.co

原创 成爲Java技術專家需要掌握的知識點

好久沒有寫博客了,前段時間一直忙着投簡歷、面試,現在也差不多告一段落了。 總結了一下自己的現狀就是基礎太渣,雖然說下面羅列的Java很多東西平常都用不到,但是如果想要成爲與Java/Scala相關崗位的技術專家,就必須對這些基礎非常清楚,

原创 Spark CBO CostBasedJoinReorder源碼解析

1、背景 最近聽到阿里大神分享,講到Spark CBO中的JoinReorder處理inner join優化,用了動態規劃+遺傳算法,於是處於好奇,看了一下源碼,這篇博客作爲記錄。   2、

原创 Spark Catalyst 緩存機制

1、背景 Spark SQL 用thriftserver去接,使用的時候,經常會出現找不到hdfs上xxx文件,需要手動refresh table相關的表的情況。 今天偶然看到Spark Catalyst中的相關代碼,突然眼前一亮,摸索着

原创 Neo4j 從零開始搭建與使用

  背景:做血緣分析,用來存儲字段之間的血緣關係。 源碼:https://github.com/neo4j/neo4j 1、下載源碼並編譯 git clone https://github.com/neo4j/neo4j  mvn c

原创 Spark執行流程與原理

  Spark執行計劃分析: https://blog.csdn.net/zyzzxycj/article/details/82704713 ----------- 先貼一張sql解析的總流程圖: 第一次看這圖可能還不是很理解,先看一個

原创 Apache Spark SQL自適應執行實踐

最近遇到了很多spark性能優化的問題,剛好找到了一篇比較全面的總結,但沒有給出具體實現方法。 所以這邊打算羅列一下計劃優化的點,慢慢抽時間研究、優化,最後打算應用到公司業務中,並爭取貢獻到spark社區。 ---------------

原创 broadcast hash join和sort merge join

Join操作是數據庫和大數據計算中的高級特性,大多數場景都需要進行復雜的Join操作,本文從原理層面介紹了SparkSQL支持的常見Join算法及其適用場景。 Join背景介紹 Join是數據庫查詢永遠繞不開的話題,傳統查詢SQL技術總體

原创 使用jmap和MAT分析JVM堆內存

我的一臺生產環境機器每次運行幾天之後就會莫名其妙的宕機,分析日誌之後發現在tomcat剛啓動的時候內存佔用比較少,但是運行個幾天之後內存佔用越來越大,通過jmap命令可以查詢到一些大對象引用沒有被及時GC,這裏就要求解決內存泄露的問題。

原创 HBase基本架構及原理

1. HBase框架簡單介紹 HBase是一個分佈式的、面向列的開源數據庫,它不同於一般的關係數據庫,是一個適合於非結構化數據存儲的數據庫。另一個不同的是HBase基於列的而不是基於行的模式。HBase使用和 BigTable非常相同的數

原创 Spark RDD與Partion

一、RDD的概述 1.1 什麼是RDD? RDD(Resilient Distributed Dataset)叫做彈性分佈式數據集,是Spark中最基本的數據抽象,它代表一個不可變、可分區、裏面的元素可並行計算的集合。RDD具有數據流模