跳轉到主要內容
工程的博客

介紹Apache火花2.4

分享這篇文章

更新:11/19/2018

我們興奮地宣布的可用性Apache 2.4火花磚的一部分磚5.0運行時。我們想感謝Apache火花社區所有的火花2.4發布有價值的貢獻。

磚5.0運行時

繼續與目標火花更快,更容易,更聰明,火花2.4擴展其範圍具有以下特點:

  • 一個調度程序支持障礙模式更好的與mpi程序的集成,例如分布式深度學習框架
  • 介紹一些內置的高階函數,讓它更容易處理複雜數據類型(例如。、數組和地圖)
  • Scala 2.12提供實驗支持
  • 允許DataFrames即時抓取的筆記本,便於調試和故障排除。
  • 引入一個新的內置Avro數據源

除了這些新功能,發布關注可用性、穩定性、和細化,解決1000多票。其他特色火花貢獻者包括:

在這篇文章中,我們簡要總結和改進的一些高級特性,在未來幾天,我們將為這些特性深入發布博客。主要功能的綜合列表所有組件和火花jira解決,讀Apache火花測試盒框發布說明

障礙執行模式

障礙執行模式的一部分項目氫,這是一個Apache火花倡議將最先進的大數據和人工智能在一起。它使適當的嵌入分布式培訓工作從人工智能框架火花工作。他們通常喜歡探索複雜的通信模式減少,因此所有任務需要同時運行。這並不符合MapReduce的模式目前所使用的火花。使用這種新的執行模式,火花發射訓練任務(例如,MPI的任務)在一起,重啟所有任務的任務失敗。火花也引入了一個新的任務的容錯機製障礙。當任何障礙任務失敗在中間,火花將中止所有任務並重新啟動階段。

內置的高階函數

火花2.4之前,操縱複雜類型(例如數組類型),有兩種典型的解決方案:1)嵌套結構爆炸成單獨的行,並應用一些函數,然後再創建結構。2)建立一個用戶定義的函數(UDF)。新的內置函數可以直接操縱複雜類型,和高階函數可以操縱複雜的值和一個匿名lambda函數,類似於udf但與更好的性能。

你可以閱讀我們的博客高階函數

內置Avro數據源

Apache Avro是一種流行的數據序列化格式。廣泛用於Apache火花和Apache Hadoop生態係統,特別是對於Kafka-based數據管道。從Apache 2.4版本火花,火花為閱讀和寫作Avro數據提供了內置的支持。新的內置spark-avro模塊來自磚的開源項目Avro數據源為Apache火花(指spark-avro從現在開始)。另外,它還提供了:

  • 新功能from_avro ()to_avro ()讀寫DataFrame Avro數據而不是文件。
  • Avro邏輯類型支持,包括十進製、時間戳和日期類型。看到相關的模式轉換獲取詳細信息。
  • 2 x讀提高吞吐量和10%寫提高吞吐量。

你可以閱讀更多關於內置Avro數據源中深入的技術博客

實驗Scala 2.12支持

2.4從火花,火花支持Scala 2.12 cross-built Scala 2.11和2.12,這是在Maven存儲庫和下載頁麵。現在用戶可以編寫火花與Scala 2.12應用程序,通過選擇Scala 2.12引發依賴。

Scala 2.12帶來更好的互操作性與Java 8,提供改善lambda函數的序列化。它還包括新特性和bug修複,用戶的願望。

熊貓UDF改進

熊貓UDF介紹了引發tripwire。在這個版本中,我們收集了來自用戶的反饋,不斷提高熊貓UDF。

除了bug修複,有兩個新特性引發2.4:火星- 22239用戶定義的窗口函數與熊貓UDF。火星- 22274用戶定義的聚合函數與熊貓udf。我們相信這些新功能將進一步提高大熊貓的采用UDF,和下一個版本中我們將繼續改善大熊貓UDF。

圖像數據來源

周圍的社區看到更多的用例圖像/視頻/音頻處理。提供火花內置數據源的簡化用戶的工作獲取數據到毫升培訓。火花2.3版本,通過ImageSchema.readImages實現圖像數據來源。火星- 22666火花的2.4版引入了一個新的火花數據源可以加載映像文件從一個目錄遞歸地DataFrame。現在簡單加載圖片:

df = spark.read。格式(“圖像”).load (“…”)

您可以閱讀更多關於內置的圖像數據在我們的來源深入的技術博客

Kubernetes集成增強

火花2.4包含了許多增強Kubernetes集成。我們提到三個亮點。首先,這個版本支持運行集裝箱PySpark Kubernetes SparkR應用程序。火花的船隻DockerfilesPython和R綁定為用戶建立一個基礎圖像或定製它構建一個定製的映像。第二,提供了客戶端模式。用戶可以運行交互式工具(例如,殼或筆記本)pod Kubernetes集群中運行或集群外的客戶端機器。最後,安裝Kubernetes卷支持以下類型:emptyDir,hostPath,persistentVolumeClaim。詳情,請參閱技術博客

靈活的流水槽

許多外部存儲係統已經批連接器,但不是所有的人都流水槽。在本版本中,即使存儲係統不支持流水槽,streamingDF.writeStream.foreachBatch (…)允許您使用批處理每個microbatch的輸出數據的作家。例如,您可以使用現有的Apache Cassandra連接器內foreachBatch直接寫的輸出流查詢卡桑德拉。

streamingDF.writeStream.foreachBatch {(batchDF: DataFrame batchId:長)= >batchDF.write/ /使用卡桑德拉批數據源編寫湧出用於.cassandraFormat(表).option (“集群”clusterName).mode (“添加”).save ()}

類似地,您還可以使用它來適用於每個micro-batch輸出很多DataFrame /流DataFrames數據集不支持的操作。例如,foreachBatch可以用來避免寫作時重新計算流查詢多個位置。例如,

streamingDF.writeStream。foreachBatch {(batchDF: DataFrame batchId:長)= >batchDF.persit ()batchDF.write.format (…) .save (…)/ /位置1batchDF.write.format (…) .save (…)/ /位置2batchDF.unpersist ()}

接下來是什麼

再一次,我們感謝所有引發社會的貢獻!

而這篇文章隻有總結的一些特征在本版本中,你可以閱讀官方的發布說明看到變化的完整列表。請繼續關注我們將出版技術博客解釋這些特性的技術深度。

如果你想嚐試Apache 2.4火花磚5.0運行時,注冊一個免費試用帳戶在這裏

免費試著磚
看到所有工程的博客的帖子
Baidu
map