【原創】大叔經驗分享(63)kudu vs parquet


一 對比

存儲空間對比:

查詢性能對比:

 

二 設計方案

將數據拆分為:歷史數據(hdfs+parquet+snappy)+ 近期數據(kudu),可以兼具各種優點:

  • 1)整體低於10%的磁盤占用;
  • 2)更少的查詢耗時;
  • 3)近期數據實時更新;
  • 4)近期數據可修改;
  • 5)kudu集群重啟時間降低90%;
  • 6)impala並行scan:scan kudu + scan hdfs;

 

三 改造方案

利用視圖

create view v_table as
select * from parquet_table where dt < 'seven days ago'
union all
select * from kudu_table where dt >= 'seven days ago';

client將kudu_table替換為v_table即可;

 

四 其他

kudu問題:

  • flume kudu sink使用kudu client版本過低,有bug,不會自動刷新token,7天之后會因為token失效報錯;升級kudu client后可以解決bug,但是kudu client和flume使用的guava庫版本有沖突;
  • 按dt分區后tablet數量過多,磁盤占用空間過大,內存占用過多;
  • 因為tablet數量多,磁盤空間大,每次kudu集群重啟需要10-20分鍾做initialize;
  • kudu內存占用過多時會拒絕寫操作;
  • 使用kudu作為單一數倉同時支持寫入和查詢,很容易相互影響,大量寫入影響查詢,大量查詢影響寫入,會導致數據丟失或者查詢慢;
  • kudu支持更新,一個delete或者drop就可以把所有數據全部刪掉,作為單一數倉比較危險;

 


免責聲明!

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



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