人工智能教程 - 專業選修課程4.3.11 - 複雜結構數據挖掘 2.大規模計算介紹,MapReduce介紹,Spark介紹

數據挖掘的大規模計算

商品硬件問題

挑戰:

  • 您如何分配計算?
  • 我們怎樣才能使分佈式的編寫變得容易程式?
  • 機器故障:
    • 一臺服務器可以使用3年(1,000天)
    • 如果您有1,000臺服務器,則預計每天1臺存在問題
    • 使用1M機器,每天有1000臺機器發生故障!

問題和解決方案

問題:通過網絡複製數據需要時間

理念:

  • 將計算帶入數據
  • 多次存儲文件以提高可靠性

Spark / Hadoop解決了這些問題

  • 存儲基礎架構–文件系統
    • Google:GFS。 Hadoop:HDFS
  • 編程模型
    • MapReduce
    • Spark

存儲基礎架構

問題:

如果節點發生故障,如何持久存儲數據?

答:

  • 分佈式文件系統
    • 提供全局文件名稱空間 Provides global file namespace

典型用法:

  • 巨大的文件(GB到TB的100s)
  • 數據很少到位更新
  • 閱讀和追加很常見

分佈式文件系統

塊服務器

  • 文件分爲連續的塊
  • 通常每個塊是16-64MB
  • 複製的每個塊(通常爲2x或3x)
  • 嘗試將副本保存在不同的機架中

主節點

  • 亦稱Hadoop HDFS中的名稱節點
  • 存儲有關文件存儲位置的元數據
  • 可能被複制

用於文件訪問的客戶端庫

  • 與主對話以查找塊服務器
  • 直接連接到塊服務器以訪問數據
  • 可靠的分佈式文件系統
  • 數據以“塊”形式分佈在計算機之間
  • 每個塊都在不同的計算機上覆制
  • 從磁盤或計算機故障中無縫恢復
    在這裏插入圖片描述

MapReduce是一種編程風格

設計用於:

  1. 簡單的並行編程
  2. 硬件和軟件的無形管理

失敗

  1. 輕鬆管理超大規模數據

它有幾種實現,包括Hadoop,Spark(在此類中使用),Flink和最初的Google實現只稱爲“ MapReduce”

3 steps of MapReduce

  • Map
  • Group by key
  • Reduce:

MapReduce範式

在這裏插入圖片描述

並行

在這裏插入圖片描述
模式
在這裏插入圖片描述

Spark

是最流行的數據流系統 Data-Flow Systems
彈性分佈式數據集
Resilient Distributed Dataset (RDD)

數據分析軟件棧架構

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章