能夠替代Hadoop用作資料湖新的開源專案 - unpocodejava
資料湖 通常與面向 Hadoop 的物件儲存相關聯。在這種情況下,組織的資料首先上傳到 Hadoop 平臺,然後對駐留在 Hadoop 叢集節點上的資料應用資料探勘和分析工具。
我們發現 Hadoop 的核心是它的儲存層HDFS(Hadoop 分散式檔案系統),它可以跨多個伺服器儲存和複製資料,此外,Hadoop 生態系統還包括一些輔助工具,例如 Hive、Flume、Sqoop 和 Kafka,它們有助於包括資料攝取、準備和提取。
Hadoop 資料湖可以使用 Cloudera、Azure HDInsight 或 GCP DataProc 等企業平臺在本地或雲中安裝。
Hadoop 資料湖的優勢
即使在今天,由於以下原因,在 Hadoop 上安裝資料湖仍然是一種流行的選擇:
- 技術團隊之間更加熟悉
- 開源解決方案,使其實施經濟
- 更便宜,因為它們是開源的
- 許多可用於 Hadoop 整合的工具
- 易於擴充套件
- 資料區域性性可實現更快的計算
- 可以將其安裝在本地或作為各種雲中的服務
今天的 Hadoop
Hadoop 曾經是資料湖的主要選擇,但在不斷變化的技術世界中,還有其他更現代的方法基於 Spark 或 Presto 等工具。
讓我們回顧一下,瞭解事情發生了怎樣的變化。Hadoop出現在2000年代初,十年間開始流行,其實是因為很多公司走開源,當時早期的BigData和Data Lakes專案大部分都是基於Hadoop的。
Hadoop 提供了兩個主要功能:
- 用於持久化資料的分散式檔案系統 (HDFS)。
- 允許並行處理所有資料的處理框架。
越來越多的組織開始希望使用他們的所有資料,而不僅僅是一些資料。因此,Hadoop 因其儲存和處理新資料來源(包括日誌記錄、點選流以及機器和感測器生成的資料)的能力而廣受歡迎。
在 2000 年代,Hadoop 很有意義,因為它允許您使用基本硬體構建本地叢集,以低成本儲存和處理這些新資料。
但開源繼續發展,出現了一個新框架:Apache Spark,經過最佳化以處理記憶體中而不是磁碟上的資料。這當然意味著在 Spark 上執行的演算法會更快,但資料仍然需要持久化,因此 Spark 被包含在許多 Hadoop 發行版中。那行得通,但隨著雲的興起,有一種更好的資料持久化方法:物件儲存。
除此之外,隨著 Cloudera 購買 Hortonworks(以及 HP 購買 MapR),本質上我們可以說 Hadoop 不再有免費發行版,這意味著開源世界正在尋找替代解決方案。
MinIO 和 Presto 作為資料湖
我們提到它目前可以掛載在 Spark 和物件儲存庫之上。在這一點上,我們將描述一個有趣的替代方案,以替代基於 HDFS 的環境以及基於 MinIO 和 Presto 的 Hadoop 生態系統的其餘部分。
它是實現 AWS S3 API 的分散式物件儲存。MinIO 可以部署在本地和雲端,並在 Kubernetes 之上工作。
MinIO 的儲存基於物件,其中每個物件由 3 個概念組成:
- 資料本身。資料可以是您想要儲存的任何內容,從照片到 400,000 頁的手冊
- 可擴充套件數量的後設資料。後設資料由建立物件的人定義;它們包含有關資料是什麼、應該用於什麼、其機密性或與資料應該如何使用相關的任何其他內容的上下文資訊。
- 全域性唯一識別符號。識別符號是提供給物件的地址,以便它可以在分散式系統中找到。透過這種方式,無需知道其物理位置(可能存在於資料中心的不同部分或世界的不同部分)即可找到資料。
如果 MinIO 可以代替 HDFS 作為資料湖中的儲存,我們就缺少一個 HIVE 風格的 SQL 查詢引擎。
- Presto
是一個用 Java 構建的開源分散式 SQL 查詢引擎,旨在針對大量資料來源(透過聯結器)啟動互動式分析查詢,支援對從千兆位元組到 PB 級資料來源的查詢。
Presto 是一個 ANSI-SQL 查詢引擎,它允許使用相同的 SQL 語句、函式和運算子在任何連線的資料來源中查詢和運算元據。
因此,在資料湖中,我們可以使用 Presto 查詢儲存在 MinIO 中的資料。
此外,Presto 可以在 Spark 之上執行,讓您可以利用 Spark 作為 Presto 查詢的執行環境。
與在 Hadoop 上安裝資料湖相比,這種方法具有許多優點:
- 這種組合比典型的 Hadoop 配置更具彈性,而在 Hadoop 中,向 Hadoop 叢集新增和刪除節點是一個完整的過程,在這種方法中,一切都執行在 Kubernetes 之上,這使我們能夠輕鬆擴充套件。
- 單獨的計算和儲存:使用 Hadoop,如果您想新增更多儲存,您可以透過新增更多節點(使用計算)來實現。如果您需要更多儲存,無論您是否需要,您都將擁有更多計算,而使用物件儲存架構,如果您需要更多計算,您可以將節點新增到 Presto 叢集並保留儲存,以便計算和儲存不僅具有彈性,而且它們獨立地具有彈性。
- 維護:維護一個穩定可靠的 Hadoop 叢集是一項複雜的任務,例如更新叢集通常涉及停止叢集,持續更新很複雜,...
- 降低成本:透過這種架構,我們將降低總擁有成本:因為 MinIO 幾乎不需要管理,而且物件的儲存更便宜。
相關文章
- 替代Hadoop作為資料湖的新的開源專案 - unpocodejavaHadoopJava
- 替代 Redis 的開源專案「GitHub 熱點速覽」RedisGithub
- 不會 Web 開發,也能讓資料“動”起來的開源專案!Web
- 資料網格將替代資料倉儲或資料湖?- thenewstack
- 世界著名雲服務SaaS公司的開源替代專案列表
- Lime Text:一款可以替代Sublime Text的開源專案
- Lime Text: 一款可以替代 Sublime Text 的開源專案
- Databricks決定開源其Delta Lake資料湖
- 從28萬個開源專案中,我們能夠學到一些什麼?
- C#開源資源專案C#
- 多源資料快速遷移匯聚,杉巖資料推出智慧資料湖新通道
- 能夠快速提升 Python 開發技能的 4 個實戰專案Python
- 替代MLP的KAN,被開源專案擴充套件到卷積了套件卷積
- 大資料入門指南(GitHub開源專案)大資料Github
- MangoDB:MongoDB的開源替代MongoDB
- Nomic Embed:能夠復現的SOTA開源嵌入模型模型
- Android 解讀開源專案UniversalMusicPlayer(資料管理)Android
- Revolt:用Rust 編寫的替代Discord之類聊天室的開源專案Rust
- LastPass 的開源替代品AST
- 資料湖
- 10個你能參與並學習的Java開源專案Java
- 資料湖+資料倉儲 = 資料湖庫架構架構
- (轉)使applet能夠訪問本地資源......APP
- 銀行大資料新玩法,構建“一湖兩庫”金融資料湖大資料
- MinDB:國內高中生的開源JavaScript資料庫專案JavaScript資料庫
- 基於.Net開發的資料庫匯入匯出的開源專案資料庫
- Learn-Laravel -- 學習資料和開源專案集Laravel
- 大資料分析系統Hadoop的13個開源工具!大資料Hadoop開源工具
- 大資料分析系統Hadoop的13個開源工具大資料Hadoop開源工具
- 開源專案Docker,Red Hat新的虛擬化選擇Docker
- 基於Flutter的開源專案和App,Flutter入門有她就夠了(一)FlutterAPP
- 一個檔案的開源專案,開啟你的開源之旅
- 開源專案推薦:提高研發效率的5個開源專案
- Hadoop專案開發筆錄Hadoop
- 半棵樹的開源專案
- Amoeba -阿里的開源專案阿里
- CudaText:Sublime Text 的替代開源版本
- 雲資料庫時代,誰能夠執牛耳?資料庫