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,有時稱為...