書名: 精通Spark數據科學作者名: (美)安德魯·摩根 (英)安托萬·阿門德 大衛·喬治 馬修·哈利特本章字數: 1909字更新時間: 2021-01-15 16:45:35
1.2 數據架構
我們先對數據架構進行深入的解釋,包括它是做什么的,它為什么有用,何時使用它,以及Apache Spark如何匹配它。
在常見的場景下,現代數據體系結構有4個基本特征,如圖1-1所示。
- 數據采集。
- 數據湖。
- 數據科學。
- 數據訪問。
圖1-1 數據架構
我們將對每一項進行介紹,然后在后續章節里,再對其進行詳細解釋。
1.2.1 數據采集
從傳統的角度來看,應該在嚴格的規則下采集數據,并根據預定模式對數據進行格式化。這個處理過程稱為提取(Extract)、轉換(Transform)和加載(Load),簡稱ETL,如圖1-2所示,它在廣泛的實踐中得到了大量的商業工具和開源產品的支持。
圖1-2 ETL方法
ETL方法趨向于前端檢查,確保數據質量和模式一致性,以簡化后續的在線分析處理。它特別適合處理具有特定特征集的數據,即涉及經典實體關系模型的數據。不過,它并不完全適用于所有場景。
在“大數據革命”期間,對結構化、半結構化和非結構化的數據的潛在需求猛增,產生了可處理不同特性數據的系統。這些數據有4V特點:大體量(Volume)、多樣性(Variety)、高速度(Velocity)和準確性(Veracity)。傳統的ETL方法在這種情況下陷入困境,因為它需要太多的時間來處理大量的數據,并且面對變化時過于僵化。現在出現了一種不同的方法,稱為“基于讀時模式”的范式。該方法以原始形式(或至少非常接近)采集數據,而歸一化、驗證及其他的細節操作在分析過程中一并完成。
這個處理過程稱為提取、加載和轉換(簡稱ELT),參考傳統方法的表示,它的表示如圖1-3所示。
圖1-3 ELT方法
這種方法重視數據傳遞的即時性,它對細節操作進行延遲直到必須要處理為止。這樣,數據科學家可以第一時間對數據進行操作,并采用一系列技術來找出數據中的隱藏知識,這在傳統方法中是不可能實現的。
雖然我們只是做了一個較高層次的概述,但這種方法是非常重要的,本書將通過實現多種基于讀時模式的算法進行深入研究。假定我們都采用ELT方法進行數據采集,也就是說,我們鼓勵在用戶方便的時間加載數據。這可能是在每n分鐘、通宵或者低負載的時間段。然后用戶判斷是否采用諸如離線批量處理的方式來進行數據完整性、質量等方面的檢查。
1.2.2 數據湖
數據湖是一種方便的、普遍適用的數據存儲方式。它很有用,因為它有一些重要的優點,主要如下。
- 可靠的存儲。
- 可擴展的數據處理能力。
下面對這些優點做簡要說明。
1.可靠的存儲
實現數據湖的底層存儲有很好的預選方案,包括Hadoop分布式文件系統(HDFS)、MapR-FS和亞馬遜S3等。
在本書中,HDFS是我們預設的存儲實現方式。此外,本書作者使用分布式Spark配置,部署在另一種資源協調者YARN上,并在Hortonworks的HDP環境中運行。因此,除非另有說明,否則本書使用的技術就是HDFS。如果你對其中的某些技術還不太熟悉,我們會在本章中進一步討論。
在任何情況下我們都必須知道,Spark在本地引用HDFS位置,通過前綴file
://訪問本地文件位置,通過前綴s3a://
引用S3位置。
2.可擴展的數據處理能力
顯然,Apache Spark是我們選擇的數據處理平臺。Spark允許用戶在自己偏愛的環境中執行代碼,可以是本地、獨立節點、YARN或Mesos,只要在masterURL
中配置合適的集群管理器。這可以在以下3個位置中的任何1個位置完成。
- 在執行
spark-submit
命令時使用--master
選項。 - 在
conf/spark-defaults.conf
文件中添加spark.master
屬性。 - 在
SparkConf
對象中調用setMaster
方法。
如果你還不熟悉HDFS,或者沒有訪問過集群,那你可以使用本地文件系統運行本地Spark實例,這對于測試來說是很有幫助的。不過請注意,經常出現的不良行為往往只在集群上執行時才出現。所以,如果你想認真地使用Spark,那么應該在分布式集群管理器上進行投資,為什么不試試Spark的獨立集群模式,或者使用亞馬遜的AWS EMR呢?例如,亞馬遜提供了許多成本較低的云計算方案,你可以訪問亞馬遜的AWS網站了解Spot實例的思路。
1.2.3 數據科學平臺
數據科學平臺提供了大量的服務和API,使數據科學工作能夠有效地進行,如探索性的數據分析、機器學習模型創建和改進、圖像和音頻處理、自然語言處理和文本情感分析等。
數據科學平臺是Spark真正強大的地方,也是本書介紹的要點,它開發了一系列強大的本地機器學習庫,具有難以比擬的并行圖形處理能力,并構建了一個強大的社區。Spark為數據科學提供了無限的可能。
本書接下來的部分章節將深入分析這些領域,包括第6~8章。
1.2.4 數據訪問
數據湖中的數據最常被數據工程師和科學家利用Hadoop生態系統工具訪問,如Apache Spark、Pig、Hive、Impala或Drill等。然而,其他用戶,甚至是其他系統需要訪問數據的時候,常用的工具要么太技術化,要么不能滿足用戶在現實世界中關于延時的要求。
這種情況下,數據通常要被復制到數據集市或索引存儲庫中,這樣,它才可能被應用于更傳統的應用方法,如報表或面板。這個過程稱為數據出口,通常涉及索引創建和為了實現低延遲而進行的數據重構。
幸運的是,Apache Spark有各種各樣的適配器和連接器可以連接數據庫、商業智能(BI)軟件以及可視化軟件和報表軟件。本書將介紹相關內容。
- 輕輕松松自動化測試
- 三菱FX3U/5U PLC從入門到精通
- 平面設計初步
- Canvas LMS Course Design
- PowerShell 3.0 Advanced Administration Handbook
- IoT Penetration Testing Cookbook
- Expert AWS Development
- 工業機器人工程應用虛擬仿真教程:MotoSim EG-VRC
- 自動檢測與轉換技術
- 現代傳感技術
- Docker High Performance(Second Edition)
- Nginx高性能Web服務器詳解
- Containers in OpenStack
- Hands-On Reactive Programming with Reactor
- Photoshop CS5圖像處理入門、進階與提高