Hadoop四種不同的資料載入場景

 


靜態資料(Data at rest)
  • 指已經存在於某個目錄中的檔案形式的資料。
  • 這些資料處於靜止狀態,意味著不會再進行額外更新,可以直接傳輸到 Hadoop 中。
  • 傳輸可透過標準的 HDFS Shell 指令完成,例如 cp、copyFromLocal 或 put。

動態資料(Data in motion)
(a file that is getting appended , a file is being update, data from multiple locations needs to be merged into one single source.)
  • 指持續被更新的資料。
  • 動態資料來源可能會定期新增新資料、追加到檔案中。
  • 或者將不同的日誌合併為一個日誌。
  • 在將這些資料複製到 Hadoop 前,需要具備合併檔案的能力。
  • 常見的動態資料有如下兩種
    1.來自網頁伺服器(例如 IIS 或 Apache 網頁伺服器)的資料
    2.資料庫伺服器日誌或應用程式日誌

來自網頁伺服器或資料庫日誌的資料(Data from a web server)
(同上)


來自數據倉儲(Data warehouse)的資料
當從數據倉儲(Data warehouse)或其他關聯式資料庫管理系統(RDBMS)移動資料時,可以先匯出資料,然後使用 Hadoop 的指令將資料匯入。比方像是Sqoop(設計目的是在關聯式資料庫系統和 Hadoop 之間傳輸資料。)

若使用的是 Netezza 系統,可以透過 Jaql 的 Netezza 模組來讀取或寫入 Netezza 資料表。此外,也可以使用 BigSQL Load 傳輸資料。而Flume 非常適合收集來自網頁伺服器或資料庫日誌的資料。

Flume 是一個三層分佈式服務,用於資料收集與可能的資料處理,其結構由邏輯節點組成:
代理層(Agent Tier):在資料來源安裝 Flume 代理,這些代理將資料發送至下一層。
收集層(Collector Tier):將資料聚合後,轉發至最終的存儲層。
存儲層(Storage Tier):例如 HDFS。

每個邏輯節點都有來源(Source)和接收端(Sink)。來源定義資料的收集位置,而接收端則指定資料的目標位置。此外,可以選擇性地配置攔截器(Interceptors,有時稱為 Decorators 或 Annotators),以便在資料傳遞過程中進行簡單的處理。

Flume 使用實體節點(Physical Node)的概念。一個實體節點對應於叢集中一台機器上的單個 Java 進程,運行於單個 JVM 中。實體節點通常與物理機器是同義的,但有時一個實體節點可以承載多個邏輯節點。











留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念