天天看點

Apache Spark機器學習.1.1 Spark概述和技術優勢

摘要

spark機器學習簡介

本章從機器學習和資料分析視角介紹apache spark,并讨論spark中的機器學習計算處理技術。本章首先概括介紹apache spark,通過與mapreduce等計算平台進行比較,展示spark在資料分析中的技術優勢和特點。接着,讨論如下五個方面的内容:

機器學習算法與程式庫

spark rdd和dataframe

機器學習架構

spark pipeline技術

spark notebook技術

以上是資料科學家或機器學習專業人員必須掌握的五項最重要的技術内容,以便于充分運用spark處理計算優勢。同時,本章将涵蓋以下六個主題:

spark概述和技術優勢

機器學習算法和spark機器學習庫

機器學習架構、rm4e和spark計算

機器學習工作流和spark pipeline技術

spark notebook技術簡介

<b></b>

<b>1.1 spark概述和技術優勢</b>

本節對apache spark計算平台作總體介紹,通過與mapreduce等計算平台對比,總結spark計算的優勢。然後,簡要介紹spark計算如何适用于現代機器學習和大資料分析。

通過本節學習,讀者将對spark計算有一個基本了解,同時掌握一些基于spark計算開展機器學習的技術優點。

1.1.1 spark概述

apache spark是面向大資料快速處理的計算架構,該架構包含一個分布式計算引擎和一個專門設計的程式設計模型。2009年,spark起源于美國加州大學伯克利分校amplab實驗室的一個研究項目,然後在2010年成為apache軟體基金完全開源項目。之後,apache spark經曆了指數級增長,目前spark是大資料領域最活躍的開源項目。

spark計算利用了記憶體分布式計算方法,該方法使得spark計算成為最快的計算方式之一,尤其是對于反複疊代計算。根據多次測試表明,它的運作速度比hadoop mapreduce快100倍以上。

apache spark是一個統一的平台,平台由spark核心引擎和四個庫組成:sparksql、spark streaming、mllib和graphx。這四個庫都有python、java和scala的程式設計api。

除了上面提到的四個内置庫,apache spark還有數十個由第三方提供的程式包,這些程式包可用于處理資料源、機器學習,以及其他任務。

apache spark産品版本更新周期為3個月,spark 1.6.0版本更新于2016年1月4日。apache spark 1.3版本包含有dataframes api和ml pipelines api。自apache spark 1.4版本開始,程式已預設包含r界面(sparkr)。

讀者可以通過連結http://spark.apache.org/downloads.html下載下傳apache spark。想要安裝和運作apache spark,可以到連結http://spark.apache.org/docs/latest/下載下傳最新說明文檔。

1.1.2 spark優勢

相對于mapreduce等其他大資料處理平台,apache spark擁有諸多優勢。其中,比較突出的兩項優勢是快速運作和快速寫入能力。

apache spark保留了諸如可擴充性和容錯能力等一些mapreduce最重要的優勢,并且利用新技術對其保留的優勢進行了大幅提升。

與mapreduce相比,apache spark的引擎可以為使用者執行更為常見的有向無環圖(dag)。是以,使用apache spark來執行mapreduce風格的圖計算,使用者可以獲得比在hadoop平台上更好的批處理性能。

apache spark擁有記憶體處理能力,并且使用了新的資料提取方法,即彈性分布式資料集(rdd),使得apache spark能夠進行高度疊代計算和響應型程式設計,并且擴充了容錯能力。

同時,apache spark隻需要幾行簡短的代碼就可以使複雜的pipeline展現變得更為容易。最為人所熟知的是,它可以輕松建立算法,捕捉複雜甚至是混亂資料的真谛,并幫助使用者得到實時處理結果。

apache spark團隊為spark總結的功能包括:

機器學習中的疊代算法

互動式資料挖掘和資料處理

相容hive資料倉庫并可提升百倍運作速度

流處理

傳感器資料處理

對于在實際應用中需要處理上述問題的資料科學家,apache spark在處理以下問題時可以輕而易舉地顯現出其優勢:

并行計算

互動式分析

複雜計算

大部分使用者對于apache spark在速度和性能上的優勢都很滿意,但是部分人也注意到apache spark産品仍在不斷完善。

http://svds.com/user-cases-for-apache-spark/提供了一些展現spark優勢的執行個體。