flume數據採集「hadoop和hbase的關係」

隨着技術的快速變化,越來越多的數據一直在生成。

據最新的全球數據領域估計,到2025年,全世界產生的數據量將增長到175 ZB。

公司現在需要改進的軟件來管理這些海量數據。 他們一直在尋找處理和存儲數據並將其分佈在不同服務器上的方法,以便他們可以利用它們。

在本文中,我們將討論特定的數據管理工具系列,這些工具在討論時經常會引起混淆和互換使用。 今天,我們將討論Hadoop,HDFS,HBase和Hive,以及它們如何幫助我們處理和存儲大量數據。

Hadoop,HDFS,HBase,Hive 有什麼不同?

Hadoop

Hadoop是指幾種不同技術的統稱。 但是,Hadoop還是特定的軟件框架。 它使用戶能夠輕鬆管理分佈式計算和存儲。 它通過將文檔劃分到多個存儲區和跨機器集群的塊中來實現。

為了實現容錯,Hadoop將這些存儲複製到集群上。 然後,它通過將作業劃分為幾個較小的獨立任務來執行分佈式處理。 然後,此任務在計算機群集上並行運行。

Hadoop通過集群服務對大型數據集進行分佈式處理,以同時在多台計算機上工作。 為了在Hadoop上處理任何數據,我們使用了幾種服務,我們將討論:

· HDFS:HDFS或Hadoop分佈式文件系統是一種主要-次要拓撲,具有兩個運行的守護程序:DataNode和NameNode。 稍後再詳細介紹。

· MapReduce:這是一種在分佈式集群上並行處理大數據的算法。 然後,MapReduce可以將此數據合併為結果。

· YARN:YARN的功能是將源管理,作業監視和計劃任務劃分為單獨的守護程序。 它可以超越數千個節點。 這是因為YARN聯合允許用戶將多個群集通過到一個大群集中。 我們可以在一個較大的工作中同時使用許多獨立的集群,這是通過較大規模的系統實現的。

HDFS

如前所述,HDFS是在兩個守護程序(DataNode和NameNode)上運行的主次拓撲。

名稱節點存儲元數據,其中所有數據都存儲在DataNodes中。 另外,如果您的NameNode發生故障並且沒有任何備份,則整個Hadoop實例將無法訪問。 就像在迭代鏈表時丟失指針一樣。 如果您不知道接下來數據的存儲位置,則無法訪問。

另一方面,DataNode是實際存儲數據的位置。 如果任何特定的DataNode關閉,這應該沒問題,因為NameNode經常會跨數據節點管理同一數據塊的多個實例(這在某種程度上取決於配置)。

藉助Hadoop分佈式文件系統,您可以在服務器上一次寫入數據,然後多次讀取。 HDFS是立即處理大量數據的理想選擇。

原因是HDFS與硬件群集商品上的NameNode和DataNode一起使用。 實際上,這是Hadoop流行的主要原因之一。

您可以在廉價的硬件上運行HDFS並輕鬆地橫向擴展(這意味着購買更多的機器來處理數據),這一事實使它成為非常受歡迎的選擇。 以前,大多數公司都依靠垂直擴展(購買通常很昂貴但可以單獨處理更多數據的服務器)。 這是昂貴的並且具有更多的計算限制。

HDFS和Hadoop與MapReduce等其他基礎層組件相結合,使各種規模和能力的企業都可以擴展其數據處理,而無需購買昂貴的設備。

HBase

HDFS和Hadoop有點相同,我們可以互換使用術語來理解開發人員。

但是,HBase是非常不同的。

HBase是建立在Hadoop文件系統之上的開源,面向列的數據庫。 在某種程度上,這是人們更熟悉的層,從某種意義上說,它與典型的數據庫更加相似。

它是水平可擴展的。 HBase的數據模型類似於Google大表設計的數據模型。 它不僅提供了對大量非結構化數據的快速隨機訪問,而且還利用了HDFS提供的相同的容錯能力。

HBase是Hadoop生態系統的一部分,該生態系統實時提供對Hadoop文件系統中數據的讀寫訪問。 由於相同的原因,許多大公司都將HBase用於其日常功能。 例如,Pinterest可與38個HBase群集一起工作,每秒執行約500萬次操作!

更重要的是,HBase提供了對一百萬條記錄中的單個行的較低延遲訪問。 為了正常工作,HBase在內部使用哈希表,然後提供對索引的HDFS文件的隨機訪問。

Hive

儘管Hadoop具有非常好的可擴展性和可靠性,並且非常適合提取數據,但是它的學習曲線過於陡峭,無法使其具有成本效益和時間效益。 另一個很好的替代方法是在MapReduce之上的Apache Hive。

Hive是一種數據倉庫軟件,允許用戶快速輕鬆地編寫類似SQL的查詢以從Hadoop提取數據。

這個開源框架的主要目的是處理和存儲大量數據。 對於Hadoop,您可以使用MapReduce Java API實施SQL查詢。 對於Apache Hive,您可以輕鬆繞過Java,而僅使用類似SQL的查詢訪問數據。

Apache Hive的工作很簡單。 它將用HiveQL編寫的輸入程序轉換為一個或多個Java MapReduce和Spark作業。

然後,它將數據組織到HDFS表中,並在群集上運行作業以產生結果。 Hive是一種將結構應用於大量非結構化數據,然後對它們執行基於SQL的查詢的簡單方法。 由於它使用的接口熟悉JDBC(Java數據庫連接),因此可以輕鬆地與傳統數據中心技術集成。

Hive的一些最重要的組件是:

· MetaStore:這是存儲Hive表的架構。 Hive Metastore主要用於保存有關倉庫中分區和表的所有信息。 默認情況下,它運行與Hive服務相同的過程。

· SerDe:SerDe或序列化器/反序列化器是一項功能,向配置單元提供有關如何處理記錄的指令

這些事情不盡相同-但它們可以協同工作

我們已經討論了Hadoop,Hive,HBase和HDFS。 所有這些開源工具和軟件都旨在幫助處理和存儲大數據並從中獲得有用的見解。

即使它們扮演的角色截然不同,它們也經常互換使用。

總而言之,Hadoop用作文件存儲框架,該框架又將HDFS用作主要-次要拓撲,以將文件存儲在Hadoop環境中。

然後,HBase位於HDFS之上,是基於列的分佈式數據庫系統,類似於Google的Big Table,它對於隨機訪問Hadoop文件非常有用。 另一方面,Hive提供了一個基於Hadoop的類似SQL的接口,以繞過JAVA編碼。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/273930.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:09
下一篇 2024-12-17 14:09

相關推薦

發表回復

登錄後才能評論