【知识点总结】大数据技术原理与应用
大數據技術原理與應用
本文是對《大數據與云計算導論》課程知識點的應試總結。基本涵蓋了《大數據技術原理與應用》的重點內容。
思維導圖由@福爾摩東整理
第一章 大數據概述
1、三次信息化浪潮
| 第一次浪潮 | 1980年前后 | 個人計算機 | 信息處理 | Intel、AMD、IBM |
| 第二次浪潮 | 1995年前后 | 互聯網 | 信息傳輸 | 雅虎、谷歌、阿里巴巴 |
| 第三次浪潮 | 2010年前后 | 物聯網、云計算和大數據 | 信息爆炸 | 亞馬遜、谷歌、阿里云 |
注:信息化浪潮每15年一次。
2、信息科技為大數據時代提供技術支持
存儲設備容量不斷增加
存儲單位:bit、Byte、KB、MB、GB、TB、PB、EB(ZB、YB、BB、NB、DB)
CPU處理能力大幅提升
網絡帶寬不斷增加
3、大數據的特點(5個)
4、大數據的影響
1、大數據對科學研究的影響
人類自古以來在科學研究上先后經歷了實驗、理論、計算和數據四種范式:
2、大數據對思維方式的影響
5、大數據關鍵技術
- 數據采集與預處理
- 數據存儲和管理
- 數據處理與分析
- 數據安全和隱私保護
6、大數據計算模式
| 批處理計算 | 針對大規模數據的批量處理 | MapReduce、Spark等 |
| 流計算 | 針對流數據的實時計算 | Strom、Stream、銀河流數據處理平臺等 |
| 圖計算 | 針對大規模圖結構數據的處理 | Pregel、GraphX、PowerGraph等 |
| 查詢分析計算 | 大規模數據的存儲管理和查詢分析 | Dremel、Hive等 |
7、云計算
1、概念
通過網絡提供可伸縮的、廉價的分布式計算能力
2、云計算的關鍵技術
8、物聯網
1、概念
物物相連的互聯網
從技術架構上來看,物聯網可分為四層:感知層、網絡層、處理層和應用層
2、物聯網關鍵技術
9、大數據與云計算、物聯網的關系
- 區別:大數據側重于海量數據的存儲、處理與分析,從海量數據中發現價值,服務于生產和生活;云計算本質上旨在整合和優化各種IT資源,并通過網絡以服務的方式廉價地提供給用戶;物聯網的發展目標是實現物物相連,應用創新是物聯網發展的核心。
- 聯系:大數據、云計算和物聯網三者相輔相成。大數據根植于云計算,大數據分析的很多技術都來自于云計算,云計算的分布式數據存儲和管理系統提供了海量數據的存儲和管理能力,分布式并行處理框架MapReduce提供了海量數據的分析能力;大數據為云計算提供了“用武之地”;物聯網的傳感器源源不斷產生的大量數據,構成了大數據的重要來源,同時物聯網需要借助于云計算和大數據技術,實現物聯網大數據的存儲、分析和處理。
第二章 大數據處理框架Hadoop
1、Hadoop簡介
Hadoop是一個開源分布式計算平臺
Hadoop的核心包括:HDFS(前身:NDFS)和MapReduce。
2、Hadoop的特性
- 高可靠性
- 高效性
- 高擴展性
- 高容錯性
- 成本低
- 運行在Linux平臺上
- 支持多種編程語言
第三章 分布式文件系統HDFS
1、HDFS含義
Hadoop分布式文件系統,是GFS的開源實現
2、DFS含義
分布式文件系統(DFS)是一種通過網絡實現文件在多臺主機上進行分布式存儲的文件系統
3、分布式文件系統的結構
- 主節點(Master Node):名稱節點(NameNode)
- 從節點(Slave Node):數據節點(DataNode)
4、分布式文件系統的設計需求
分布式文件系統的設計目標主要包括:透明性、并發控制、可伸縮性、容錯以及安全需求等。
5、HDFS特性
1、目標
2、局限性
6、HDFS相關概念
1、塊
以數據塊為單位進行存儲(1.0默認64MB)
**目的:**最小化尋址開銷
好處:
2、名稱節點和數據節點
名稱節點的核心數據結構:FsImage和EditLog。
| 存儲元數據 | 存儲文件內容 |
| 元數據存在內存中 | 文件內容保存在磁盤中 |
| 保存文件Block于DataNode間的映射關系 | 維護Block與DataNode本地文件的映射關系 |
3、第二名稱節點
作用:
7、HDFS體系結構
1、HDFS命名空間管理
HDFS的命名空間包含目錄、文件和塊。
HDFS集群中只有一個命名空間,并且只有唯一一個名稱節點。
2、通信協議
- 構建在TCP/IP協議基礎之上
- 使用客戶端協議與名稱節點進行交互
- 名稱節點和數據節點之間使用數據節點協議進行交互
- 客戶端與數據節點的交互通過RPC實現
3、局限性
8、HDFS的存儲原理
數據的冗余存儲、數據存取策略、數據錯誤與恢復
1、數據的冗余存儲
優點:
2、數據存取策略
1、數據存放
冗余因子默認為3。
**內部請求:**第一個副本放置在寫操作請求的數據節點上;
**外部請求:**挑一個不太忙的數據節點,第二個副本放置在不同于第一個副本的機架的數據節點上,第三個副本放置在第一個副本的機架的其他數據節點上。
2、數據讀取
當發現某個數據塊副本對應的機架ID與客戶端對應的ID一樣時,優先選擇該副本,否則就隨機。
3、數據復制
采用流水線復制的策略(4KB)
3、數據錯誤與恢復
9、HDFS常用命令
- hadoop fs -get
- hadoop fs -put
第四章 分布式數據庫HBase
1、HBase含義
Hadoop DataBase(HBase)是針對谷歌BigTable的開源實現。
2、HBase與傳統關系數據庫的對比分析
| 數據類型 | 具有豐富的數據類型和存儲方式 | 未經解釋的字符串 |
| 數據操作 | 豐富的操作 | 不存在復雜的表與表之間的關系 |
| 存儲模式 | 基于行模式存儲 | 基于列存儲 |
| 數據索引 | 可以構建復雜的多個索引 | 只有一個索引——行鍵 |
| 數據維護 | 更新操作會用最新的當前值去替代舊值 | 生成一個新的版本,舊有版本依然保留 |
| 可伸縮性 | 很難實現橫向擴展,縱向擴展空間有限 | 可實現靈活的水平擴展 |
3、HBase數據模型
1、相關概念
HBase是一個稀疏、多維、持久化存儲的映射表,它采用行鍵、列族、列限定符和時間戳進行索引。
2、數據坐標
“四維坐標”:[行鍵,列族,列限定符,時間戳]
4、HBase實現原理
1、HBase的功能組件
- 庫函數
- 一個Master主服務器
- 許多個Region服務器
2、Region的定位
Region標識符:“表名+開始主鍵、RegionID”
5、HBase運行機制
1、HBase系統架構
2、Region服務器的工作原理
每個Region對象又是由多個Store組成的,每個Store對應了表中的一個列族的存儲。
每個Store又包含了一個MemStore和若干個StoreFile。
6、HBase常用Shell命令
- create:創建表
- list:列出HBase中所有的表信息
- put:向表、行、列指定的單元格添加數據
- get:通過指定表名、行、列、時間戳、時間范圍和版本號來獲得相應單元格的值
- scan:瀏覽表的相關信息
第五章 NoSQL數據庫
1、NoSQL簡介
1、含義
Not Only SQL
2、特點
2、NoSQL的四大類型
| 鍵值數據庫 | Redis、Memcached |
| 列族數據庫 | Cassandra、HBase |
| 文檔數據庫 | MongoDB |
| 圖數據庫 | Neo4j |
3、NoSQL的三大基石
1、CAP
- C(Consistency):一致性
- A(Availability):可用性
- P(Tolerance of Network Partition):分區容忍性
CAP理論最多同時滿足三個中的兩個。
CA。強調一致性(C)和可用性(A),放棄分區容忍性(P)。
eg:傳統的關系數據庫(MySQL、SQL Server等)。
CP。強調一致性(C)和分區容忍性(P),放棄可用性(A)。
eg:Neo4j、BigTable和HBase等。
AP。強調可用性(A)和分區容忍性(P),放棄一致性(C)。
eg:Cassandra、Dynamo等。
2、BASE
BASE
- BA(Basically Available):基本可用
- S(Soft-state):軟狀態
- E(Eventual consistency):最終一致性
ACID:一個數據庫事務具有ACID四性
- A(Atomicity):原子性
- C(Consistency):一致性
- I(Isolation):隔離性
- D(Durability):持久性
4、三個數據庫陣營
- OldSQL(傳統關系數據庫)
- NoSQL
- NewSQL
第六章 云數據庫
1、云數據庫概念
云數據庫是部署和虛擬化在云計算環境中的數據庫。
2、云數據庫的特性
第七章 MapReduce
1、MapReduce簡介
MapReduce是一種分布式并行編程框架,以Map和Reduce為核心函數。
MapReduce的設計理念:計算向數據靠攏。
Map函數和Reduce函數都以<key,value>作為輸入。
2、MapReduce的工作流程
第八章 Hadoop再探討
1、針對Hadoop的改進與提升
| HDFS | 單一名稱節點,存在單點失效問題 | 設計了HDFS HA,提供名稱節點熱備份機制 |
| HDFS | 第一命名空間,無法實現資源隔離 | 設計了HDFS聯邦,管理多個命名空間 |
| MapReduce | 資源管理效率低 | 設計理新的資源管理框架YARN |
2、HDFS 2.0的新特性
1、HDFS HA
2、HDFS聯邦
優勢:
3、新一代資源管理調度框架YARN
1、YARN體系結構
YARN體系結構包含了三個組件:
2、YARN的發展目標
YARN的目標就是實現“一個集群多個框架”,即在一個集群上部署一個統一的資源調度管理框架YARN,在YARN之上可以部署其他各種計算框架。
3、Hadoop生態系統中具有代表性的功能組件
1、Pig
提供了類似SQL的Pig Latin語言。
Pig會自動把用戶編寫的腳本轉換成MapReduce作業在Hadoop集群上運行。
2、Tez
Tez是Apache開源的支持DAG作業的計算框架。
核心思想:將Map和Reduce兩個操作進一步拆分。
3、Kafka
一種分布式發表訂閱消息系統。
滿足在線實時處理和批量離線處理。
第九章 Spark
1、Spark簡介
Spark是基于內存計算的大數據并行計算框架。
特點:
2、Scala簡介
Scala是一門多范式編程語言,面向函數編程。
3、Spark運行架構
1、基本概念
2、RDD
**概念:**分布式對象集合。
依賴關系:
- 窄依賴:一個父RDD的分區對應于一個子RDD的分區,或多個父RDD的分區對應于一個子RDD的分區;
- 寬依賴:存在一個父RDD的一個分區對應于一個子RDD的多個分區。
第十章 流計算
1、流計算概述
1、流計算概念
流計算即針對流數據的實時計算。
2、批量處理和實時處理
2、流計算的處理流程
- 數據實時采集
- 數據實時計算
- 實時查詢服務
3、開源流計算框架Storm
Storm的設計思想:
Streams
流數據(Streams)是一個無限的Tuple序列。
Spouts
Spouts是Stream的源頭,會從外部讀取流數據并持續發出Tuple。
Bolts
Bolts既可以處理Tuple,也可以將處理后的Tuple作為新的Streams發給其他Bolts。
Topology
Spouts和Bolts組成的網絡。
Stream Groupings
用于告知Topology如何在兩個組件間進行Tuple的傳送。
4、Spark Streaming
Spark Streaming與Storm的對比
Spark Streaming無法實現毫秒級的流計算,而Storm則可以實現毫秒級響應。
第十一章 圖計算
1、圖計算概述
**含義:**對圖結構的計算。
**BSP模型:**整體同步并行計算模型,又名“大同步模型”。
一次BSP計算過程包括一系列全局超步(超步就是指計算中的一次迭代),每個超步包括3個組件:
2、Pregel簡介
Pregel是一種基于BSP模型實現的并行圖處理系統。
總結
以上是生活随笔為你收集整理的【知识点总结】大数据技术原理与应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019湖南多校第三场
- 下一篇: ROS系统中的多个版本Boost问题