中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Apache Spark 2.4 正式發(fā)布,重要功能詳細(xì)介紹

2018-11-16    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

美國時間 2018年11月08日 正式發(fā)布了。一如既往,為了繼續(xù)實現(xiàn) Spark 更快,更輕松,更智能的目標(biāo),Spark 2.4 帶來了許多新功能,如下:

♦ 添加一種支持屏障模式(barrier mode)的調(diào)度器,以便與基于MPI的程序更好地集成,例如, 分布式深度學(xué)習(xí)框架;

♦ 引入了許多內(nèi)置的高階函數(shù),以便更容易處理復(fù)雜的數(shù)據(jù)類型(比如數(shù)組和 map);

♦ 開始支持 Scala 2.12;

♦ 允許我們對 notebooks 中的 DataFrame 進(jìn)行熱切求值(eager evaluation),以便于調(diào)試和排除故障;

♦ 引入新的內(nèi)置 Avro 數(shù)據(jù)源。

 

除了這些新功能外,該版本還重點關(guān)注可用性,穩(wěn)定性和優(yōu)化,解決了超過1000 個tickets。 Spark 貢獻(xiàn)者的其他顯著特征包括:

♦ 消除 2GB 塊大小的限制 [SPARK-24296, SPARK-24307]

♦ 提升 Pandas UDF [SPARK-22274, SPARK-22239, SPARK-24624]

♦ 圖片模式數(shù)據(jù)源(Image schema data source )[SPARK-22666]

♦ Spark SQL 加強[SPARK-23803, SPARK-4502, SPARK-24035, SPARK-24596, SPARK-19355]

♦ 內(nèi)置文件源改進(jìn) [SPARK-23456, SPARK-24576, SPARK-25419, SPARK-23972, SPARK-19018, SPARK-24244]

♦ Kubernetes 整合加強 [SPARK-23984, SPARK-23146]

在這篇文章中,我們簡要總結(jié)了一些更高級別的功能和改進(jìn)。

Barrier Execution Mode

Barrier Execution Mode 是 Project Hydrogen 的一部分,這是 Apache Spark 的一項計劃,旨在將最先進(jìn)的大數(shù)據(jù)和 AI 技術(shù)結(jié)合在一起。它可以將來自 AI 框架的分布式訓(xùn)練作業(yè)正確地嵌入到 Spark 作業(yè)中。我們通常會像 All-Reduce 這樣來探討復(fù)雜通信模式(complex communication patterns),因此所有的任務(wù)都需要同時運行。這不符合 Spark 當(dāng)前使用的 MapReduce 模式 。使用這種新的執(zhí)行模式,Spark 同時啟動所有訓(xùn)練任務(wù)(例如,MPI 任務(wù)),并在任務(wù)失敗時重新啟動所有任務(wù)。Spark 還為屏障(barrier tasks)任務(wù)引入了一種新的容錯機制。當(dāng)任何障礙任務(wù)在中間失敗時,Spark 將中止所有任務(wù)并重新啟動當(dāng)前 stage。

內(nèi)置高階函數(shù)

在 Spark 2.4 之前,為了直接操作復(fù)雜類型(例如數(shù)組類型),有兩種典型的解決方案:

♦ 將嵌套結(jié)構(gòu)展開為多行,并應(yīng)用某些函數(shù),然后再次創(chuàng)建結(jié)構(gòu);

♦ 編寫用戶自定義函數(shù)(UDF)。

新的內(nèi)置函數(shù)可以直接操作復(fù)雜類型,高階函數(shù)可以使用匿名 lambda 函數(shù)直接操作復(fù)雜值,類似于UDF,但具有更好的性能。比如以下兩個高階函數(shù):

 

 

內(nèi)置 Avro 數(shù)據(jù)源

Apache Avro 是一種流行的數(shù)據(jù)序列化格式。它廣泛用于 Apache Spark 和 Apache Hadoop 生態(tài)系統(tǒng),尤其適用于基于 Kafka 的數(shù)據(jù)管道。從 Apache Spark 2.4 版本開始,Spark 為讀取和寫入 Avro 數(shù)據(jù)提供內(nèi)置支持。新的內(nèi)置 spark-avro 模塊最初來自 Databricks 的開源項目Avro Data Source for Apache Spark。除此之外,它還提供以下功能:

♦ 新函數(shù) from_avro() 和 to_avro() 用于在 DataFrame 中讀取和寫入 Avro 數(shù)據(jù),而不僅僅是文件。

♦ 支持 Avro 邏輯類型(logical types),包括 Decimal,Timestamp 和 Date類型。Spark SQL 和 Avro 的數(shù)據(jù)類型之間的轉(zhuǎn)換可以參見下面:

2

♦ 倍讀取吞吐量提高和10%寫入吞吐量提升。

支持 Scala 2.12

從 Spark 2.4 開始,Spark 支持 Scala 2.12,并分別與 Scala 2.11 和 2.12 進(jìn)行交叉構(gòu)建,這兩個版本都可以在 Maven 存儲庫和下載頁面中使用。現(xiàn)在,用戶可以使用 Scala 2.12 來編寫 Spark 應(yīng)用程序。

Scala 2.12 為 Java 8 帶來了更好的互操作性,Java 8 提供了改進(jìn)的 lambda 函數(shù)序列化。 它還包括用戶期望的新功能和錯誤修復(fù)。

Pandas UDF 提升

Pandas UDF 是從 Spark 2.3 開始引入的。在此版本中,社區(qū)收集了用戶的反饋,并不斷改進(jìn) Pandas UDF。

除了錯誤修復(fù)之外,Spark 2.4 中還有2個新功能:

♦ SPARK-22239 使用 Pandas UDF 來用戶自定義窗口函數(shù)。

♦ SPARK-22274 使用 Pandas UDF 來用戶自定義聚合函數(shù)。

我們相信這些新功能將進(jìn)一步改善 Pandas UDF 的使用,我們將在下一版本中不斷改進(jìn)Pandas UDF。

Image Data Source

社區(qū)從圖像/視頻/音頻處理行業(yè)看到了更多案例。為這些提供 Spark 內(nèi)置數(shù)據(jù)源簡化了用戶將數(shù)據(jù)導(dǎo)入 ML 訓(xùn)練的工作。在 Spark 2.3 版本中,圖像數(shù)據(jù)源是通過ImageSchema.readImages 實現(xiàn)的。Spark 2.4 發(fā)行版中的 SPARK-22666 引入了一個新的 Spark 數(shù)據(jù)源,它可以作為 DataFrame 從目錄中遞歸加載圖像文件,F(xiàn)在加載圖像非常簡單:

df = spark.read.format("image").load("...")

Kubernetes 整合增強

Spark 2.4 包含許多 Kubernetes 集成的增強功能。主要包括這三點:

♦ 首先,此版本支持在 Kubernetes 上運行容器化 PySpark 和 SparkR 應(yīng)用程序。Spark 為 Dockerfiles 提供了 Python 和 R 綁定,供用戶構(gòu)建基本映像或自定義它以構(gòu)建自定義映像。

♦ 其次,提供了客戶端模式。用戶可以在 Kubernetes 集群中運行的 pod 里面運行交互式工具(例如,shell或 notebooks)。

♦ 最后,支持掛載以下類型的 Kubernetes volumes :emptyDir,hostPath 和 persistentVolumeClaim。

靈活的 Streaming Sink

許多外部存儲系統(tǒng)已經(jīng)有批量連接器(batch connectors),但并非所有外部存儲系統(tǒng)都有流式接收器(streaming sinks)。在此版本中,即使存儲系統(tǒng)不支持將流式傳輸作為接收器(streaming as a sink)。streamingDF.writeStream.foreachBatch(...) 允許我們在每個微批次(microbatch)的輸出中使用 batch data writers。例如,過往記憶告訴你可以使用 foreachBatch 中現(xiàn)有的 Apache Cassandra 連接器直接將流式查詢的輸出寫入到 Cassandra。具體如下:

 

 

同樣,你也可以使用它將每個微批輸出(micro-batch output)應(yīng)用于 streaming DataFrames 中,許多 DataFrame/Dataset 操作在 streaming DataFrames 是不支持的,具體使用如下:

 

標(biāo)簽: 大數(shù)據(jù) 通信

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:三大方法保護(hù)Hadoop集群免遭攻擊!

下一篇:1460萬個目標(biāo)檢測邊界框:谷歌開源Open Images V4數(shù)據(jù)集