Kudu簡介


Kudu介紹

1.新的應用場景出現:需要實時分析。

2.Kudu提供了更接近於RDBMS的功能和數據模型,提供類似於關系型數據庫的存儲結構來存儲數據,允許用戶以和關系型數據庫相同的方式插入、更新、刪除數據。

3.Kudu僅僅是一個存儲層,它並不存儲數據,而是依賴外部的Hadoop處理引擎(MapReduce,Spark,Impala)。Kudu把數據按照自己的列存儲格式存儲在底層Linux文件系統中。

實時數據流分析的歷史方案

生產者 Spark Streaming 數據源 Kafka  存儲層可以是HDFS 

實時處理

流失處理的思想是在數據流中處理數據,而不是將數據保存到存儲系統,然后批量處理。

批量處理:每個批次有明確的開始和結束點。流失處理:持續對流入的小批量數據處理。

 

舉例:

欺詐檢測,需要參考用戶歷史數據(24小時特征)

醫療設備場景 (Hadoop+HBase+HDFS)

 盡管Hadoop存儲層可以處理快速插入數據,低延遲隨機讀、更新和掃描,但這個架構會變得復雜且難以維護。

 KUDU設計

Kudu的表被水平分割成很多塊,稱為Tablet

廣義地說,有兩種關系型數據庫:OLTP和OLAP

OLTP適用於對響應速度和數據完整性高的在線服務應用。(行格式存儲:適合全行檢索和更新)

OLAP適用於數據的大規模掃描。(列格式存儲:掃描所有列中的幾列)

KUDU適合這兩種關系型數據庫。

KUDU角色

KUDU中的核心是基於表的存儲引擎。

KUDU存儲自己的元數據(有關表的)信息和用戶的數據,保存在tablet中。

元數據存儲在master服務器管理的tablet中。

用戶數據存儲在master服務器管理的tablet中。

master:管理KUDU集群。tablet:集群中的工作節點。執行所有與數據相關的操作。存儲、訪問、編碼、壓縮

 KUDU以列格式存儲所有數據。

 KUDU寫入操作流程:

寫入操作->傳入tablet

kudu會將新數據存儲到一個臨時的寫緩沖區。緩沖區滿了后,就會放到磁盤中的一個位置中。

比如插入一條新的數據,最終會將那一行所有列分成不同的區間

避免熱點:

避免讀或寫查詢落到同一個服務器上。

KUDU可以使用兩種分區。范圍分區(range partitioning)

KUDU實踐:

使用KUDU QuickStart VM 熟悉Kudu API和工具(並未預裝Hadoop工具)

KUDU幾乎是與Impala使用,Impala依賴於Hive,Hive依賴於HDFS

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM