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 中。實體節點通常與物理機器是同義的,但有時一個實體節點可以承載多個邏輯節點。
留言
張貼留言