原创 計算機指令與運算基礎原理筆記

一、彙編代碼與指令 1.要讓程序在一個 Linux 操作系統上跑起來,需要把整個程序翻譯成彙編語言(ASM,Assembly Language)的程序,這個過程叫編譯(Compile)成彙編代碼。針對彙編代碼,可以再用匯編器(Assemb

原创 Scala 2.13 par()、XML.loadString()等語法無法解析

Scala 2.13之後,並行集合模塊變成了外部庫,直接像2.12那樣寫如下的代碼,IDE會報“Cannot resolve symbol par”: cities => (cities.par map getWeatherData).

原创 Linux文件系統原理筆記

一、文件系統 1. 在文件系統中,每個文件都有一個名字,文件名就是一個普通的文本。當然文件名會經常衝突,不同用戶取相同名字的情況還是會經常出現的。要想把很多的文件有序地組織起來,就需要讓它們成爲目錄或者文件夾。這樣,一個文件夾裏可以包含文

原创 Spark應用與調優筆記

一、Spark是如何在集羣上運行的 1. Spark的driver和executor並不是孤立存在的,cluster manager會將它們聯繫起來,集羣管理器負責維護一組運行Spark application的機器。集羣管理器也擁有自己

原创 Linux網絡系統原理筆記

一、Socket網絡協議基本原理 1. 假設這裏就涉及三臺機器。Linux服務器A和B處於不同的網段,通過中間的Linux服務器作爲路由器進行轉發,如下圖所示: 說到網絡協議,還需要簡要介紹一下兩種網絡協議模型,一種是OSI標準七層模型

原创 Spark結構化API—DataFrame,SQL和Dataset

一、結構化API概述 1. 結構化API是處理各種數據類型的工具,可處理非結構化的日誌文件、半結構化的CSV文件以及高度結構化的Parquet文件。結構化API指以下三種核心分佈式集合類型的API:Dataset類型、DataFrame類

原创 Linux虛擬化原理筆記

一、虛擬機 1. 操作系統上的程序分爲兩種,一種是用戶態的程序例如Word、Excel等,一種是內核態的程序例如內核代碼、驅動程序等。爲了區分內核態和用戶態,CPU專門設置四個特權等級0、1、2、3。在虛擬化技術出現以前,內核態運行在第0

原创 Linux操作系統基礎綜述筆記

一、Linux內核基礎白話 1. 在操作系統中,輸入設備驅動其實就像客戶對接員。有時候新插上一個鼠標的時候,會彈出一個通知安裝驅動,這就是操作系統這家外包公司在配備對接人員。當客戶告訴對接員需求的時候,對於操作系統來說,輸入設備會發送一個

原创 計算機存儲與I/O系統基礎原理筆記

一、存儲器層次結構 1. CPU中的寄存器(Register)與其說是存儲器,其實更像是CPU本身的一部分,只能存放極其有限的信息,但是速度非常快,和CPU同步。而CPU Cache(CPU高速緩存)用的是一種叫作SRAM(Static

原创 Linux進程管理原理筆記

一、程序從編譯(編譯彙編、鏈接、裝載到內存)到運行爲進程 1. 在Linux上寫程序和編譯程序,也需要一系列的開發套件,運行下面的命令,就可以在centOS 7操作系統上安裝開發套件: yum -y groupinstall "Deve

原创 Spark Structured Streaming筆記

一、流處理基礎 1. 流處理是連續處理新到來的數據以更新計算結果的行爲。在流處理中輸入數據是無邊界的,沒有預定的開始或結束。它是一系列到達流處理系統的事件(例如信用卡交易、點擊網站動作,或從物聯網IoT傳感器讀取的數據),用戶應用程序對此

原创 Spark低級API筆記

一、RDD 1. 在絕大部分場景下,用戶都應該儘量使用DataFrame等結構化API,只有當這類高級API無法解決遇到的業務或工程問題的時候,才需要使用Spark的低級API,例如彈性分佈式數據集(RDD)、SparkContext和分

原创 Spark概覽筆記

一、Spark淺析 1. Spark應用程序由一個driver進程和多個executor進程組成,driver進程運行main()函數,位於集羣的一個節點上,它負責三件事: (1)維護Spark應用程序的相關信息; (2)迴應用戶的程序或

原创 計算機組成原理現實應用筆記

一、大型DMP系統設計思路 1. DMP系統的全稱叫作數據管理平臺(Data Management Platform),目前廣泛應用在互聯網的廣告定向(Ad Targeting)、個性化推薦(Recommendation)等領域。通常來說

原创 Hadoop集羣管理基礎知識筆記

1.Hadoop集羣儘量採用ECC內存,否則可能會出現校驗和錯誤,ECC內存有糾錯功能。在磁盤方面,儘管namenode建議採用RAID以保護元數據,但是將RAID用於datanode不會給HDFS帶來益處,速度依然比HDFS的JBOD(