Apache Spark 2.2.0新特性介紹(轉載)

這個版本是 Structured Streaming 的一個重要里程碑,由於其終於能夠正式在生產環境中使用,實驗標籤(experimental tag)已經被移除。在流系統中支持對任意狀態進行操做;Apache Kafka 0.10 的 streaming 和 batch API支持讀和寫操做。除了在 SparkR, MLlib 和 GraphX 裏面添加新功能外,該版本更多的工做在系統的可用性(usability)、穩定性(stability)以及代碼的潤色(polish)並解決了超過 1100 個tickets。html

這篇文章中將詳細介紹這些新特性,包括:算法

  • Structured Streaming的生產環境支持已經就緒;
  • 擴展 SQL 的功能;
  • R 中引入了新的分佈式機器學習算法;
  • MLlib 和 GraphX 中添加了新的算法

Structured Streaming

Structured Streaming 是從 Spark 2.0 開始引入的,其提供了高層次的API來構建流應用程序;目的是提供一種簡單的方式來構建端到端的流應用程序(end-to-end streaming applications),提供了一致性保證和容錯方式。apache

從 Spark 2.2.0 開始,Structured Streaming 已經爲生產環境的支持準備就緒,除了移除了實驗性標籤,還包括了一些高層次的變化,好比:json

  • Kafka Source and Sink: Apache Kafka 0.10 的 streaming 和 batch API支持讀和寫操做;
  • Kafka Improvements: Kafka 到 Kafka 流操做中的producer 支持緩存以實現低延遲;
  • Additional Stateful APIs: [flat]MapGroupsWithState 操做支持複雜的狀態處理以及超時處理;
  • Run Once Triggers:詳情:Running Streaming Jobs Once a Day For 10x Cost Savings

SQL 和 Core APIs

自從 Spark 2.0 發佈,Spark 已經成爲大數據領域中功能最豐富而且符合標準的SQL查詢引擎之一。它能夠鏈接各類數據源,而且能夠在這些數據上執行 SQL-2003 標準語句,包括分析函數以及子查詢。Spark 2.2 還添加了許多 SQL 新功能,包括:緩存

  • API 更新: 統一了數據源和hive serde表的 CREATE TABLE 語法;SQL查詢支持廣播提示(broadcast hints )好比BROADCAST, BROADCASTJOIN, 以及 MAPJOIN;
  • 整體性能和穩定性:
    • filter、join、aggregate、project 以及 limit/sample 操做支持基於成本優化器的基數統計(Cost-based optimizer cardinality estimation);
    • 使用星型啓發式(star-schema heuristics)來提高 TPC-DS 性能;
    • CSV 和 JSON 文件 listing/IO 性能提高;
    • HiveUDAFFunction 支持部分集合;
    • 引入基於JVM對象的聚合運算符
  • 其餘值得關注的改變:
    • 支持解析多行的JSON 和 CSV 文件
    • 分析分區表的命令

MLlib 和 SparkR

Spark 2.2.0 的最後一大變化主要集中在高級分析,MLlib 和 GraphX 添加了如下的新算法:app

  • 局部敏感哈希(Locality Sensitive Hashing)
  • 多級邏輯迴歸(Multiclass Logistic Regression)
  • 個性化PageRank(Personalized PageRank)

Spark 2.2.0還在 SparkR 中添加了如下分佈式算法:dom

  • 交替最小二乘(ALS,Alternating Least Squares )
  • 保序迴歸(Isotonic Regression)
  • 多層感知分類器(Multilayer Perceptron Classifier)
  • 隨機森林(Random Forest)
  • 高斯混合模型(Gaussian Mixture Model)
  • 線性判別式分析(Linear Discriminant Analysis, LDA)
  • 多級邏輯迴歸(Multiclass Logistic Regression)
  • 梯度提高樹(Gradient Boosted Trees)
  • Structured Streaming API 支持 R 語言
  • R 中支持 to_jsonfrom_json
  • 支持Multi-column approxQuantile

隨着這些算法的增長,SparkR已經成爲 R 中最全面的分佈式機器學習庫。機器學習

 

該文轉載自 https://www.iteblog.com/archives/2194.html分佈式

英文原文參考 https://databricks.com/blog/2017/07/11/introducing-apache-spark-2-2.html函數

相關文章
相關標籤/搜索