Hadoop Learn Notes
原因
- 計算對於數據處理的性能的發展跟不上日益增加的數據量
- 由此引出了工業界的用多臺機器的並行處理能力去彌補單臺機器的處理瓶頸
- Hadoop是利用互聯網的多臺計算機使用MapReduce(改進的單指令多數據流技術)來進行並行處理計算大量數據
什麼是大數據
- 大數據——沒法被符合服務等級協議的單臺計算機處理或者存儲的任何數據集。
- 一個單節點處理大容量的數據光讀取就要花費過長時間,假如分配到多個節點,就能夠省略不少時間
- 可是經過網絡傳輸數據會更加慢
大數據技術背後的核心思想
- 大數據處理方法的共同特徵
- 數據分佈到了多個節點(網絡IO <<本地IO)
- 計算程序離數據更近(集羣上的節點),不是相反
- 數據處理儘可能在本地完成
- 使用可順序讀取磁盤IO代替隨機讀取磁盤IO(數據交換速度<<數據尋道時間)
- 目的都在於使得輸入/輸出IO並行化,提升數據處理性能
數據分發到多個節點上
- 把數據分佈到各個服務器節點的最終目的在於讓大量的計算節點同時參與到數據的處理計算過程當中來,就算一臺可以存的下的數據也會分發到多個節點
- 每一個數據塊會在多個節點上有多份拷貝,hadoop默認了有三塊,增長了系統的容錯性,一個結點故障,其餘節點還備份有故障結點的數據
- 爲達到數據並行處理的目的,多個節點能夠同時參與到數據處理過程
- 也不會把全部數據統一放到一個文件服務器去每一個結點去讀取所需部分,由於本地的數據讀取速度高於網絡IO速度啊
計算邏輯移動到數據附近
- 大數據的一個觀念就是,把數據分佈到各個計算節點,程序也要移動到數據附近,那麼,程序運行因此來的函數庫也要移動到數據處理節點;結點一多,程序維護部署是一個宯的挑戰,因此大數據系統能夠集中式地部署程序代碼,大數據系統後臺會在計算任務啓動以前把程序移動到各個數據處理結點
計算節點進行本地數據處理
- 大數據模型是一種基於分佈式和並行處理的編程模型。
- 數據被分發到各個計算節點,程序運行依賴庫也移動到了數據所在結點,計算節點就地計算處理數據的條件完備了。
- 上面也只是個理想狀態,大數據系統會把計算任務儘可能調度到離數據最近的節點。
- 分佈在各個計算幾點的計算結果,最終可能會匯聚到一個計算節點,聚集的數據量相對於計算節點本地處理的原始數據來講,就小了不少,減輕網絡IO的耗時。
大數據的編程模型
大數據和事務性系統
可以處理多大的數據量
商用示例
hadoop概念
初識hadoop
hadoop系統管理
MapReduce開發基礎
MapReduce開發進階
Hadoop輸入輸出
測試Hadoop程序
Hadoop監控
使用Hadoop構建數據倉庫
使用Pig進行數據處理
HCatalog和企業級Hadoop
使用Hadoop分析日誌
使用HBASE構建實時系統
Hadoop與數據科學
Hadoop與雲運算
構建YARN應用程序
歡迎關注本站公眾號,獲取更多信息