原创 PySpark源碼分析之Driver端基於Py4j的通信詳解

文章目錄概述服務端啓動Python客戶端編程示例 概述 接上文 PySpark源碼分析之AM端運行流程(Driver) 的最後部分可知,PySpark是通過Py4j來實現與Scala端JVM通信交互的(注:Py4j只用於Drive

原创 Hive常見調優技巧

文章目錄減少數據量並行化執行開啓動態分區開啓JVM重用防止數據傾斜Group by引起的數據傾斜Join引起的數據傾斜Skew join重寫業務邏輯MapJoin自動判斷手動設置map階段優化reduce階段優化方法1方法2合併小

原创 一文弄懂HDFS基本原理和架構

文章目錄概述HDFS架構(Hadoop1.x)ClientNameNode(Master)DataNode(Slave)Secondary NameNodeHDFS 副本存放策略NameNode工作原理SecondNameNode

原创 Python Cheat Sheet

文章目錄Python基礎知識導入數據:Python備忘單SciPy備忘單:Python中的線性代數NumPy備忘單:Python中的數據分析Matplotlib備忘單:用Python繪圖Python Seaborn:統計數據可視化

原创 一文弄懂IO多路複用模型

文章目錄阻塞和非阻塞IO模型阻塞 io 模型 blocking IO非阻塞 io 模型 nonblocking IOIO多路複用模型select和pollepollIO多路複用模型應用場景 阻塞和非阻塞IO模型 操作系統在處理io

原创 一文弄懂數據庫索引

文章目錄一、索引二、索引分類1、從邏輯角度2、從物理存儲角度三、索引的實現方式1、紅黑樹2、B-樹3、B+樹4、B/B+樹和紅黑樹區別(1)爲什麼用B/B+樹這種結構來實現索引呢?(2)紅黑樹 和 b+樹的用途有什麼區別?5、B-

原创 一文弄懂常用分佈式事務解決方案

文章目錄CAP理論BASE理論常見分佈式事務解決方案2PC(二階段提交)方案:強一致性3PC(三階段提交)方案:強一致性TCC 事務:最終一致性本地消息表:最終一致性事務消息:最終一致性Saga 事務:最終一致性命令協調事件編排各

原创 一文弄懂Java中的線程池

文章目錄一、線程二、線程池1、ThreadPoolExecutor2、ForkJoinPool三、Java通過Executors提供的線程池四、Spring中線程池1、ThreadPoolTaskExecutorXML配置註解配置

原创 一文弄懂Netty基本架構

文章目錄Netty簡介Netty結構Netty線程模型服務端線程模型客戶端線程模型NioEventLoopTaskNetty中的Channel工作原理線程ChannelPipeline和ChannelHandlerChannelH

原创 一文弄懂HDFS的Ha高可用原理

文章目錄一、Hadoop1.x中hdfs架構二、Hadoop2.x中hdfs架構三、Hadoop 2.x元數據四、基於 QJM 的共享存儲系統的總體架構1、基於 QJM 的共享存儲系統的內部實現架構圖如圖。2、QJM 寫過程分析五

原创 一文弄懂Redis基本理論

文章目錄一、Redis:簡介Redis 優勢Redis內存佔用參考二、Redis爲什麼那麼快?三、Redis數據結構和底層存儲1、String(字符串)2、List(列表)3、Hash(字典)4、Set(集合)5、Sorted S

原创 Spark源碼分析之分區(Partition)

文章目錄概述Spark的分區器(Partitioner)RDD分區數確認窄依賴中分區數寬依賴中分區數源RDD的分區數RDD的重新分區Spark分區編程示例 概述 我們知道Task是Spark計算的最小計算單位,一個Partitio

原创 Spark源碼分析之Rpc框架

文章目錄概述基本概念組件原理Message消息通信架構SparkEnv的初始化RpcEnvRpc服務端的啓動流程Rpc服務端處理請求流程Rpc客戶端發送請求流程Rpc請求回調處理流程參考 概述 在Spark中很多地方都涉及網絡通信

原创 Spark源碼分析之CoarseGrainedExecutorBackend運行流程(Executor)

接上文 Spark源碼分析之AM端運行流程(Driver) 分析完了在AM端Driver的運行流程,在最後我們看到AM向Yarn提交申請Executor容器請求,請求上下文參數如下圖: Yarn分配運行Executor容器流程和

原创 Yarn源碼分析之狀態機機制

文章目錄基本概念狀態機的構建狀態機的使用狀態機流程 基本概念 在Yarn中狀態轉移和事件驅動往往協同工作,一個處理請求首先會作爲某種事件發送給集羣,然後經事件調度後傳給具體的事件處理器,在事件處理器中調用狀態機完成狀態轉移處理邏輯