spark 發(fā)布 2.2.0版本

spark 發(fā)布 2.2.0版本

  • Apache Spark 2.2.0是2.x分支上的第三次主版本發(fā)布,其他兩個版本分別2.0.x,2.1.x兩個主版本以及下屬的分支版本。這次發(fā)布spark移除了Structured Streaming的實驗標簽。也就是說,這次發(fā)布的版本的焦點在于其易用性、穩(wěn)定性,并完善、解決了超過1100個問題(目前來看,實際上有1146個問題,具體內(nèi)容可以在spark的 jira上看到)。
  • 這次版本主要對一下幾個模塊著做了修改
    • Core and Spark SQL
    • Structured Streaming
    • MLlib
    • SparkR
    • GraphX
    • Deprecations
    • Changes of behavior
    • Known Issues
    • Credits

Core and Spark SQL(內(nèi)核和spark SQL)

  • API更新
    • SPARK-19107:支持通過DataFrameWriter和catalog來創(chuàng)建hive表
      • DataFrameWriter是spark.sql下的一個接口,主要用于將數(shù)據(jù)集寫到外部存儲系統(tǒng)中
      • Catalog同樣是spark.sql的一個接口,用于提供標準API訪問spark SQL中的元數(shù)據(jù)
    • SPARK-13721:支持hive的LATERAL VIEW OUTER explode()功能
      • LATERAL VIEW OUTER explode()是hive所提供的一行轉(zhuǎn)多列的方法(詳情 現(xiàn)在這里挖個坑,找個時間來添一下)
    • SPARK-18885:針對數(shù)據(jù)源和hive的正/反序列化數(shù)據(jù)的同一建表語法
    • SPARK-16475:對sql查詢中的 BROADCAST, BROADCASTJOIN, and MAPJOIN增加廣播提示功能
    • SPARK-18350:支持本地回話時區(qū)(為了解決機器處于不同時區(qū)、或者不同用戶處于不同時區(qū)所產(chǎn)生的時間不同問題)
    • SPARK-19261:支持擴展的sql語法alter table table_name add cloumns
    • SPARK-20420:增加external catalog時間
      • external catalog
    • SPARK-18127:增加spark的鉤子和擴展點
      • 這是Srinath提出的一個改進點,其本意是希望通過自定義spark會話的方式來來實現(xiàn)以下目標:增加自定義的分析規(guī)則,如實現(xiàn)遞歸操作;增加自己的分析檢查,如對數(shù)據(jù)源做特殊的檢查,在發(fā)現(xiàn)問題的時候可以提前發(fā)現(xiàn);增加自定義優(yōu)化等
    • SPARK-20576:在Dataset/DataFrame中支持通用的提示函數(shù)
    • SPARK-17203:數(shù)據(jù)源操作不應(yīng)該區(qū)分大小寫
    • SPARK-19139:為spark增加AES基礎(chǔ)認證機制
  • 性能和穩(wěn)定
    • 代價優(yōu)化器
      • 針對filter,join,aggregate,project和limit/sample操作的評估基數(shù)
      • 對join重排序進行優(yōu)化
      • 對TPC-DS利用啟發(fā)式星型結(jié)構(gòu)進行優(yōu)化
    • 引入一個基于聚合操作的jvm對象
    • 部分聚合支持hive UDAF 函數(shù)
    • 對CSV和JSON的文件列表/IO進行優(yōu)化
    • 解決不可撤銷/不可殺死的任務(wù)耗盡系統(tǒng)資源的問題
    • 拓撲結(jié)構(gòu)的塊復(fù)制問題
  • 其他值得注意的改變
    • 支持解析多行JSON文件
    • 支持解析多行CSV文件
    • 支持分區(qū)表的表分析命令
    • 在完成插入和創(chuàng)建hive表后丟棄階段字典和數(shù)據(jù)文件
    • 視圖更加文健、標準而不需要大量的SQL擴展
    • 支持從hive 2.0/2.1的模型倉庫中讀取數(shù)據(jù)
    • 提供提交協(xié)議的RDD端口API
    • 對定時調(diào)度任務(wù)增加黑名單列表
    • 移除對hadoop 2.5和更早版本的支持
    • 移除對java7的支持

Structured Streaming(結(jié)構(gòu)流)

  • 常規(guī)應(yīng)用
    • Structured Streaming(結(jié)構(gòu)流)的API現(xiàn)在屬于常規(guī)應(yīng)用,不再具有實驗標簽
  • kafka 優(yōu)化
    • 支持在流中或者批量從kafka中讀取/寫入數(shù)據(jù)
    • 使用一個緩存的kafka生產(chǎn)者通過kafka sink向kafka寫入數(shù)據(jù)
  • API更新
    • 使用[flat]MapGroupWithState時支持復(fù)雜狀態(tài)執(zhí)行和超時
    • 支持一次觸發(fā)器
  • 其他不重要的改變
    • 增加一個測試和基準的rate source(信率源)
  • structtured streaming 編程指南

MLlib

  • 基于data-frame的新算法API
    • 線性SVC
      • SVC: support vector classification(支持向量聚類算法)
    • 基于data-frame API的卡方檢驗
    • 基于data-frame API的相關(guān)分析
    • 基于特征轉(zhuǎn)化的確實值處理
    • 廣義線性模型增加Tweedie分布
    • 頻繁項集挖掘中的FPGrowth算法和關(guān)聯(lián)規(guī)則
  • 已存在的算法中增加python和R的api
    • Gradient Boosted Trees(梯度提升樹)
    • 二分k均值
    • 局部敏感哈希 參考
    • pySpark的分布式主成分分析和矩陣奇異值分解
  • 主要bug修復(fù)
    • DistributedLDAModel.logPrior計算準確率修復(fù)
    • EMLDAOptimizer因類型匹配錯誤失敗(由GraphX checkpointing的bug導(dǎo)致)
    • 修復(fù)在二項式廣義線性模型中計算信息準則錯誤問題
      • AIC :AIC信息準則即Akaike information criterion,是衡量統(tǒng)計模型擬合優(yōu)良性的一種標準,由于它為日本統(tǒng)計學(xué)家赤池弘次創(chuàng)立和發(fā)展的, 因此又稱赤池信息量準則
    • 在某些輸入數(shù)據(jù)中訓(xùn)練二分K均值模型報"java.util.NoSuchElementException: key not found"錯誤
    • pyspark.ml.Pipeline 在多線程模式使用時會出問題
    • 框約束的邏輯回歸
  • MLlib編程指南

SparkR

  • SparkR在2.2.0版本焦點主要集中在:增加了大量現(xiàn)存Spark SQL特性的支持
    *主要特征
    • Structured Streaming API支持R語言
    • 完整的catalogAPI可以支持R語言
    • to_json,from_json的列函數(shù)
    • 合并dataFrame 和 合并列
    • 支持dataFrame的checkpointing
    • R中approxQuantile函數(shù)支持多列計算
  • SparkR編程指南

GraphX圖計算

  • bug修復(fù)
    • 圖計算接收器從PageRank中獲取到了不準確的結(jié)果
    • 圖頂點Rdd/邊緣RDD做checkpoint操作時出現(xiàn)ClassCastException異常
  • GraphX編程指南

不贊成

  • python
    • 放棄對python2.6的支持
  • MLlib
    • spark.ml LDA類不應(yīng)該在spark.mllib的API中暴露,在spark.ml.LDAModel中,不提倡oldLocalModel 和 getModel
  • SparkR
    • 不提倡創(chuàng)建外部表

方式改變

  • MLlib
    • 開發(fā)API ALS.train()使用默認參數(shù)0.1代替1.0,為了匹配常規(guī)算法API中的默認參數(shù)設(shè)置
  • sparkR:
    • 為SparkR的高斯矩陣模型增加對數(shù)似然估計,但是引入一個sparkR的模型不會持續(xù)兼容:高斯矩陣模型在SparkR 2.1中已經(jīng)被移除,可能不會在sparkR 2.2中重新引入。我們計劃在將來對其保持向后兼容。
由于知識局限,文中可能有些地方翻譯的不準確,歡迎批評指正。更多信息請多關(guān)注ApacheCN
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容