天天看點

《Scala機器學習》一一第3章 使用Spark和MLlib

**第3章

使用spark和mllib**

上一章介紹了在全局資料驅動的企業架構中的什麼地方以及如何利用統計和機器學習來處理知識,但接下來不會介紹spark和mllib的具體實作,mllib是spark頂層的機器學習庫。spark是大資料生态系統中相對較新的成員,它基于記憶體使用而不是磁盤來進行優化。資料仍然可以根據需要轉儲到磁盤上,但spark隻有在明确訓示這樣做或活動資料集不适合記憶體時才會執行轉儲。如果節點出現故障或由于某些原因從記憶體中擦除資訊,spark會利用存儲的資訊來重新計算活動資料集。這與傳統的mapreduce方法不同,傳統的mapreduce方法會将每個map或reduce的資料保留到磁盤上。

spark特别适合于在分布式節點集上的疊代或統計機器學習算法,并且可以對其進行擴充。對于spark,唯一的問題是節點中可用的總記憶體空間和磁盤空間,以及網絡速度。本章将介紹spark架構和實作的基礎知識。

可簡單修改配置參數來管理spark在單個節點上或跨一組節點執行資料管道。當然,這種靈活性以稍微複雜的架構和更長的設定時間為代價,但架構的并行性非常好。由于目前大多數筆記本電腦已經是多線程且足夠強大,是以這樣的配置通常不會有大問題。

本章将介紹以下主題:

安裝和配置spark

spark架構的基礎知識,并解釋為什麼它會綁定scala語言

為什麼spark是繼順序程式設計和hadoop mapreduce之後的下一代技術

spark元件

scala和spark中單詞計數程式的實作

基于流的單詞計數程式的實作

如何從分布式檔案或分布式資料庫中建立spark的資料框(dataframe)

spark性能調整

繼續閱讀