大資料核心問題:分布式儲存和分布式處理
(1)gfs
檔案儲存:資料以資料塊(塊的大小固定為128m)的形式儲存在塊伺服器上,元資料將檔案位址和資料塊位置資訊儲存在master伺服器上,客戶端程式通過向master請求資料塊的訪問,master返回塊所在伺服器的位置資訊,客戶端直接與塊伺服器互動進行資料讀取。塊伺服器向master返回心跳,表示伺服器在執行。
寫資料:客戶端程式向master請求寫入資料—>master根據塊伺服器的空閒位置分配可寫入資料的塊位置(2+1模式)—>master寫入元資料資訊(怎麼寫,寫到哪)—>客戶端將資料寫給最近的塊伺服器,然後該伺服器將新資料生成副本傳送到另外兩個位址儲存。
(2)big table
儲存表:a list of sorted 鍵值對列式儲存(即首先索引列名,然後在該列中找到符合條件的行記錄)表記錄。
儲存超大表:超大表 = a list of 小表;小表 = a list of 小小表;小小表 = a list of sorted
寫表:類似gfs寫方式。
(3)mapreduce
mapreduce程式啟動(hadoop 1.0)
mapreduce程式執行
map 程序:從本機讀入資料為鍵值對,通過map程式輸出為另一對,並呼叫partitioner介面
—>shuffle(由mapreduce計算框架完成,partitioner介面實現):將map產生的具有相同鍵的鍵值對通過http通訊傳送給同個reduce程序
—>reduce程序:對收到的進行排序和合併,相同key放在一起,組成hive、spark sql、impala
mapreduce、hive
storm、spark streaming
4.基於圖結構資料的圖計算
LinkedList前世今生
1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...
前世今生 STL
嘛,string就是乙個用於字串處理的標準類庫,但是需要注意的是其速度可能會比直接操縱char陣列要慢一些。reverse這個方法是我一直都想找到但是沒有找到的,在判斷回文的時候格外好用。string s abcdef string ss s ss abcdef reverse ss.begin s...
位址 前世今生
alu arithemetic and logic unit 書面意思是 算術與邏輯部件,運算器,算術與邏輯單元,通俗來講 cpu處理的資料位數。從4位 8位 16位 32位,處理能力越來越強。發問 16位計算能力如何處理20位的位址呢?cs ip 是一組暫存器,用於告知 cpu 當前將要讀取的彙編...