原创 查找樹(AVL、B、B+、紅黑樹)

文章目錄一、二叉查找樹(BST)1.1 定義1.2 插入1.3 刪除1.4 存在的問題二、AVL 樹(平衡二叉樹)2.1 定義2.2 插入2.3 刪除2.4 存在的問題三、紅黑樹3.1 定義3.2 性質四、B 樹4.1 定義4.2

原创 3.3 進程同步

一、信號量 1.1 引入信號量 ​ 下列是一段最簡單的生產者與消費者的代碼: ​ 二者通過 counter 來作爲信號進行協作,但是這裏存在一個問題,就是如果有兩個生產者 P1 和 P2,當緩衝區滿的時候,P1 和 P2 都被掛

原创 RDD 算子

文章目錄一、Value 類型1.1 map(func)1.2 mapPartition(func)1.3 mapPartitionWithIndex(func)1.4 flatMap(func)1.5 glom1.6 groupB

原创 累加器和廣播變量

一、簡介 ​ Spark 中的三大數據結構:RDD,累加器,廣播變量。 ​ 累加器和廣播變量屬於共享變量,累加器是隻寫變量,廣播變量是隻讀變量。 ​ 共享變量是指可以在 Excutor 上來更改(累加器) 和讀取(廣播變量) Dr

原创 spark 任務劃分

一、寬窄依賴 1.1 窄依賴 ​ 窄依賴指的是每一個父RDD的Partition最多被子RDD的一個Partition使用,窄依賴我們形象的比喻爲獨生子女 1.2 寬依賴 ​ 寬依賴指的是多個子RDD的Partition會依賴同

原创 File 與 IO 流

File 概述 ​ File 類中有很多關於文件/目錄的操作,基本能包含自己想要的全部功能,所以在使用的時候要查 api IO 概述 按操作數據單位不同分爲:字節流和字符流 按數據流的流向不同分爲:輸入流和輸出流 按流

原创 3.2 進程調度

一、調度準則 CPU 使用率:需要使 CPU 儘可能忙。 吞吐量:一個時間單元內完成的進程數量。對於長進程,吞吐量可能爲每小時一個進程;對於短進程,吞吐量可能爲每秒 10 個進程。 週轉時間:從進程提交到進程完成的時間

原创 4.1 內存管理

文章目錄一、內存如何用起來1.1 爲進程綁定地址1.2 邏輯地址和物理地址二、分段2.1 分段的引入2.2 如何使用分段三、內存分區與內存分配算法3.1 內存分區3.2 內存分配算法四、分頁4.1 分頁的引入4.2 頁表映射的例子

原创 4.2 虛擬內存

一、虛擬內存概述 1.1 什麼是虛擬內存 ​ 虛擬內存將內存抽象成一個巨大的,統一的數組,進而將用戶看到的邏輯內存與物理內存分開,使用戶程序產生已經被分配了連續內存的錯覺。使得我們編程時不再受物理內存大小的限制。虛擬內存通過按需分

原创 5 磁盤管理和文件系統

一、生磁盤的使用 1.1 認識磁盤 ​ 概念: ​ 磁頭與磁臂相連,磁臂能將磁頭作爲一個整體而一起移動。磁盤片的表面被邏輯地劃分成圓形磁道,磁道再進一步劃分成扇區,一個扇區大小通常爲 512B。位於同一磁臂位置地磁道集合形成了柱面