kudu教程(二) 產生背景

2021-09-29 03:04:45 字數 1888 閱讀 6907

##kudu教程(二)——產生背景

1 功能上的空白

hadoop生態系統有很多元件,每乙個元件有不同的功能。在現實場景中,使用者往往需要同時部署很多hadoop工具來解決同乙個問題,這種架構稱為混合架構 (hybrid architecture)。比如,使用者需要利用hbase的快速插入、快讀random access的特性來匯入資料,hbase也允許使用者對資料進行修改,hbase對於大量小規模查詢也非常迅速。同時,使用者使用hdfs/parquet + impala/hive來對超大的資料集進行查詢分析,對於這類場景, parquet這種列式儲存檔案格式具有極大的優勢。

很多公司都成功地部署了hdfs/parquet + hbase混合架構,然而這種架構較為複雜,而且在維護上也十分困難。首先,使用者用flume或kafka等資料ingest工具將資料匯入hbase,使用者可能在hbase上對資料做一些修改。然後每隔一段時間(每天或每週)將資料從hbase中匯入到parquet檔案,作為乙個新的partition放在hdfs上,最後使用impala等計算引擎進行查詢,生成最終報表。

這樣一條工具鏈繁瑣而複雜,而且還存在很多問題,比如:

如何處理某一過程出現失敗

從hbase將資料匯出到檔案,多久的頻率比較合適

當生成最終報表時,最近的資料並無法體現在最終查詢結果上

維護集群時,如何保證關鍵任務不失敗

parquet是immutable,因此當hbase中刪改某些歷史資料時,往往需要人工干預進行同步

這時候,使用者就希望能夠有一種優雅的儲存解決方案,來應付不同型別的工作流,並保持高效能的計算能力。cloudera很早就意識到這個問題,在2023年就開始計畫開發kudu這個儲存系統,終於在2023年發布並開源出來。kudu是對hdfs和hbase功能上的補充,能提供快速的分析和實時計算能力,並且充分利用cpu和i/o資源,支援資料原地修改,支援簡單的、可擴充套件的資料模型

新的硬體裝置

ram的技術發展非常快,它變得越來越便宜,容量也越來越大。cloudera的客戶資料顯示,他們的客戶所部署的伺服器,2023年每個節點僅有32gb ram,現如今增長到每個節點有128gb或256gb ram。儲存裝置上更新也非常快,在很多普通伺服器中部署ssd也是屢見不鮮。hbase、hdfs、以及其他的hadoop工具都在不斷自我完善,從而適應硬體上的公升級換代。然而,從根本上,hdfs基於03年gfs,hbase基於05年bigtable,在當時系統瓶頸主要取決於底層磁碟速度。當磁碟速度較慢時,cpu利用率不足的根本原因是磁碟速度導致的瓶頸,當磁碟速度提高了之後,cpu利用率提高,這時候cpu往往成為系統的瓶頸。hbase、hdfs由於年代久遠,已經很難從基本架構上進行修改,而kudu是基於全新的設計,因此可以更充分地利用ram、i/o資源,並優化cpu利用率。我們可以理解為,kudu相比與以往的系統,cpu使用降低了,i/o的使用提高了,ram的利用更充分了。

設計初衷

kudu設計的初衷為了解決如下問題:

對資料掃瞄(scan)和隨機訪問(random access)同時具有高效能,簡化使用者複雜的混合架構

高cpu效率,使使用者購買的先進處理器的的花費得到最大回報

高io效能,充分利用先進儲存介質

支援資料的原地更新,避免額外的資料處理、資料移動

支援跨資料中心replication

kudu的很多特性跟hbase很像,它支援索引鍵的查詢和修改。cloudera曾經想過基於hbase進行修改,然而結論是對hbase的改動非常大,kudu的資料模型和磁碟儲存都與hbase不同。hbase本身成功的適用於大量的其它場景,因此修改hbase很可能吃力不討好。最後cloudera決定開發乙個全新的儲存系統。

kudu的定位是提供」fast analytics on fast data」,也就是在快速更新的資料上進行快速的查詢。它定位olap和少量的oltp工作流,如果有大量的random accesses,官方建議還是使用hbase最為合適。

kudu教程(一) 簡介

kudu教程 一 簡介 學習kudu先從kudu官網開始,進入主頁 我們看到的第一句話就是 a new addition to the open source apache hadoop ecosystem,apache kudu completes hadoop s storage layer t...

二 產品必備知識1 需求分析

思考 乙個產品從無到有是怎麼誕生的?這個過程又是怎麼樣的?產品經理又是怎麼做的?乙個產品從0到1一定是從需求開始的。需求可以是從自己的需求出發,也可以是從別人的需求出發。一 目標使用者1.什麼是目標使用者?疑問 那麼專業術語來講 什麼是目標使用者?目標客戶,即企業或商家提供產品 服務的物件。目標客戶...

知識表示之二 產生式規則表示法

產生式知識表示法是常用的知識表示方式之一。它是依據人類大腦記憶模式中的各種知識之間的大量存在的因果關係,並以 if then 的形式,即產生式規則表示出來的。這種形式的規則捕獲了人類求解問題的行為特徵,並通過認識 行動的迴圈過程求解問題。乙個產生是系統由規則庫 綜合資料庫和控制機構三個基本部分組成。...