Apache Hudi 0.5.1版本重磅發布


歷經大約3個月時間,Apache Hudi 社區終於發布了0.5.1版本,這是Apache Hudi發布的第二個Apache版本,該版本中一些關鍵點如下

  • 版本升級
    • 將Spark版本從2.1.0升級到2.4.4
    • 將Avro版本從1.7.7升級到1.8.2
    • 將Parquet版本從1.8.1升級到1.10.1
    • 將Kafka版本從0.8.2.1升級到2.0.0,這是由於將spark-streaming-kafka artifact從0.8_2.11升級到0.10_2.11/2.12間接升級

重要:Hudi 0.5.1版本需要將spark的版本升級到2.4+

  • Hudi現在支持Scala 2.11和2.12,可以參考Scala 2.12構建來使用Scala 2.12來構建Hudi,另外, hudi-spark, hudi-utilities, hudi-spark-bundle and hudi-utilities-bundle包名現已經對應變更為 hudi-spark_{scala_version}, hudi-spark_{scala_version}, hudi-utilities_{scala_version}, hudi-spark-bundle_{scala_version}和 hudi-utilities-bundle_{scala_version}. 注意這里的scala_version為2.11或2.12。

  • 在0.5.1版本中,對於timeline元數據的操作不再使用重命名方式,這個特性在創建Hudi表時默認是打開的。對於已存在的表,這個特性默認是關閉的,在已存在表開啟這個特性之前,請參考這部分(https://hudi.apache.org/docs/deployment.html#upgrading)。若開啟新的Hudi timeline布局方式(layout),即避免重命名,可設置寫配置項hoodie.timeline.layout.version=1。當然,你也可以在CLI中使用repair overwrite-hoodie-props命令來添加hoodie.timeline.layout.version=1至hoodie.properties文件。注意,無論使用哪種方式,在升級Writer之前請先升級Hudi Reader(查詢引擎)版本至0.5.1版本。

  • CLI支持repair overwrite-hoodie-props來指定文件來重寫表的hoodie.properties文件,可以使用此命令來的更新表名或者使用新的timeline布局方式。注意當寫hoodie.properties文件時(毫秒),一些查詢將會暫時失敗,失敗后重新運行即可。

  • DeltaStreamer用來指定表類型的參數從--storage-type變更為了--table-type,可以參考wiki來了解更多的最新變化的術語。

  • 配置Kafka Reset Offset策略的值變化了。枚舉值從LARGEST變更為LATEST,SMALLEST變更為EARLIEST,對應DeltaStreamer中的配置項為auto.offset.reset

  • 當使用spark-shell來了解Hudi時,需要提供額外的--packages org.apache.spark:spark-avro_2.11:2.4.4,可以參考quickstart了解更多細節。

  • Key generator(鍵生成器)移動到了單獨的包下org.apache.hudi.keygen,如果你使用重載鍵生成器類(對應配置項:hoodie.datasource.write.keygenerator.class),請確保類的全路徑名也對應進行變更。

  • Hive同步工具將會為MOR注冊帶有_ro后綴的RO表,所以查詢也請帶_ro后綴,你可以使用--skip-ro-suffix配置項來保持舊的表名,即同步時不添加_ro后綴。

  • 0.5.1版本中,供presto/hive查詢引擎使用的hudi-hadoop-mr-bundle包shaded了avro包,以便支持real time queries(實時查詢)。Hudi支持可插拔的記錄合並邏輯,用戶只需自定義實現HoodieRecordPayload。如果你使用這個特性,你需要在你的代碼中relocate avro依賴,這樣可以確保你代碼的行為和Hudi保持一致,你可以使用如下方式來relocation。

    <relocation>
      <pattern>org.apache.avro.</pattern>
      <shadedPattern>org.apache.hudi.org.apache.avro.</shadedPattern>
    </relocation>
    
  • DeltaStreamer更好的支持Delete,可參考blog了解更多細節。

  • DeltaStreamer支持AWS Database Migration Service(DMS) ,可參考blog了解更多細節。

  • 支持DynamicBloomFilter(動態布隆過濾器),默認是關閉的,可以使用索引配置項hoodie.bloom.index.filter.type=DYNAMIC_V0來開啟。

  • HDFSParquetImporter支持bulkinsert,可配置--commandbulkinsert

  • 支持AWS WASB和 WASBS雲存儲。


免責聲明!

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



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